
/*-- DOCUMENT READY --*/

jQuery(document).ready(function () {

	/*-- date stamp --*/
	var today = new Date();
	var Months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec');
	var Month = Months[today.getMonth()];
	var Day = leadingZero(today.getDate());
	function takeYear(theDate) {
		x = theDate.getMonth();
		var y = x % 100;
		y += (y < 38) ? 2000 : 1900;
		return y;
	}
	function leadingZero(nr) {
		if (nr < 10) nr = "0" + nr;
		return nr;
	}
	jQuery("#month").html(Month);
	jQuery("#day").html(Day);

	// fade in logo 
	// $('#logo a').fadeTo(0, 0.0).fadeTo(1800, 1.0);

	// set cookies for stylesheet switcher

	jQuery('.styleswitch').click(function () {
		if (jQuery(this).hasClass('highlight'))
			return false;
		else {
			jQuery('#stylesheetswitch a').fadeOut(1).fadeIn(1200).toggleClass("highlight");
			switchStylestyle(this.getAttribute("rel"), true);
			return false;
		}
	});

	var curLocalTime = Date.parse('1/1/2000 ' + today.toLocaleTimeString());
	var dayStart = Date.parse('1/1/2000 7:00:00'); //day time starts at 7:00am user time
	var nightStart = Date.parse('1/1/2000 19:00:00'); //night time starts at 7:00pm user time
	if (curLocalTime > nightStart || curLocalTime < dayStart) {
		switchStylestyle('styles2', false);
	}
	else {
		switchStylestyle('styles1', false);
	}


	var c = readCookie('style');
	if (c) switchStylestyle(c);


	if (c == 'styles1')
		jQuery('#sun').addClass('highlight');
	else
		jQuery('#moon').addClass('highlight');


	function switchStylestyle(styleName, isclicked) {
		var x = readCookie('style');
		if (x && isclicked == false) {
			//do nothing since they choose a theme manually
		}
		else {
			jQuery('link[rel*=style][title]').each(function (i) {
				this.disabled = true;
				if (this.getAttribute('title') == styleName) this.disabled = false;
			});
			createCookie('style', styleName, 1);
		}
	}


	/*-- player pop ups --*/
	jQuery('.playerwrapper, #flvplayer, #screen-white').hide();

	jQuery('.playercontrol a').click(
			function () {
				jQuery('#screen-white').show().css({ display: "block" }).animate({ opacity: "0.6" }, { duration: 500, complete: showMovie });
				jQuery('.playerwrapper.mainvideo').show();
			}
		);

	function showMovie() {
		jQuery('#flvplayer').show().css({ display: "block" });
		jQuery('a.close').click(
			function () {
				if (jQuery.browser.msie) {
					if (jQuery.browser.version.substr(0, 1) == '6')
						history.go(0);
					else
						window.location = window.location;
				}
				else
					jQuery('.playerwrapper, #screen-white, #flvplayer').hide();
			}
			);
	}

	/*-- resources --*/
	jQuery('.show').hide();
	jQuery('.openthis').click(

			function () {
				jQuery(this).parents(".conceptintro").siblings(".show").addClass("checkon").slideDown(1500);
				jQuery(this).fadeOut("slow");
			}
		)
	jQuery('.closethis').click(
		   	function () {
		   		jQuery(this).parents(".show").slideUp(800);
		   		jQuery(".openthis").fadeIn("slow");

		   	}
		)

});  // end document ready

function InsertExtraVisistat(extradid, extrapagename)
{
    var script = document.createElement('script');
    script.text = 'var DID=' + extradid + ';var MyPageName=\'' + extrapagename + '\';';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);  
    
    var script2 = document.createElement('script');
    script2.type = 'text/javascript';
    script2.src = 'http://sniff.visistat.com/sniff.js';
    document.getElementsByTagName('head')[0].appendChild(script2);  
}



// cookie functions http://www.quirksmode.org/js/cookies.html
function createCookie(name, value, offsethours) {
	if (!offsethours) {
		offsethours = 1;
	}

	var date = new Date();
	date.setTime(date.getTime() + (offsethours * 60 * 60 * 1000));
	var expires = "; expires=" + date.toGMTString();

	document.cookie = name + "=" + value + expires + "; path=/";
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name, "", -1);
}


/* GENERAL FUNCTIONS FOR AJAX FORMS */

function constructFormErrorMsg(errormsg, addme) {
	if (errormsg != '') {
		errormsg = errormsg + ', ';
	}
	errormsg = errormsg + addme;

	return errormsg;
}


function showFormErrorMsg(msg, elem) {
	$(elem).html(msg);
	$(elem).show(function () {
		$(elem).fadeTo(800, 100.0);
	});
}

function showFormThankyouMsg(speed, fadeoutElem, fadeinElem) {
	$(fadeoutElem).fadeTo(speed, 0.0, function () {
		$(fadeinElem).show(function () {
			$(fadeinElem).fadeTo(speed, 100.0);
			$(fadeoutElem).hide();
		});
	});
}

function sendRequestSuccess(arg, fadeoutElem, fadeinElem, visistatMsg, errorMsg, errorElem) {
	if (arg == "true") {
		$(errorElem).hide();
		showFormThankyouMsg(800, fadeoutElem, fadeinElem);
		InsertExtraVisistat(DID, visistatMsg);
	}
	else {
		showFormErrorMsg(errorMsg, errorElem);
	}
}

/* AJAX VIDEO FORM */
function sendVideoRequest(elem) {

	$('#videoPreviewFormError').hide();
	$('#videoPreviewFormError').html('');
	$('#videoPreviewFormError').css({ opacity: "0" });

	$('#videoPreviewThankyou').hide();
	$('#videoPreviewThankyou').css({ opacity: "0" });

	var errormsg = '';
	var invalidMsg = '';

	var firstname = $('#videoform-firstname').val();
	var lastname = $('#videoform-lastname').val();
	var state = $('#videoform-state').val();
	var email = $('#videoform-email').val();
	var phone = $('#videoform-phone').val();
	var country = '';

	if (firstname == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'First Name');
	if (lastname == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Last Name');
	if (state == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'State or Province');

	if (email == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (email.length <= 3) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (!(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w{2,4}$/.test(email))) {
		invalidMsg += "The E-mail Address is incorrect\n";
	}

	var generalErrorMsg = "There was an error processing your request. Please try again later.";

	if (errormsg != '') {
		showFormErrorMsg('The following fields cannot be left blank: ' + errormsg, '#videoPreviewFormError');		
	}
	else if (invalidMsg != '') {
		showFormErrorMsg(invalidMsg, '#videoPreviewFormError');
	}
	else {
		com.realprosystems.web.corporate.Utils.SaveGenericForm(firstname, lastname, state, country, email, phone, false, -1, "video",
            function (arg) { sendRequestSuccess(arg, '#videoPreviewForm', '#videoPreviewThankyou', 'Video Preview Success', generalErrorMsg, '#videoPreviewFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#videoPreviewFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#videoPreviewFormError'); }
            );
	}
}


/* AJAX FACEBOOK FORM */
function sendFacebookRequest(elem) {

	$('#facebookFormError').hide();
	$('#facebookFormError').html('');
	$('#facebookFormError').css({ opacity: "0" });

	$('#facebookThankyou').hide();
	$('#facebookThankyou').css({ opacity: "0" });

	var errormsg = '';
	var invalidMsg = '';

	var firstname = $('#facebookform-firstname').val();
	var lastname = $('#facebookform-lastname').val();
	var state = $('#facebookform-state').val();
	var email = $('#facebookform-email').val();
	var phone = $('#facebookform-phone').val();
	var country = '';

	if (firstname == '' || firstname == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'First Name');
	if (lastname == '' || lastname == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'Last Name');
	if (state == '' || state == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'State or Province');

	if (email == '' || email == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (email.length <= 3) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (!(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w{2,4}$/.test(email))) {
		invalidMsg += "The E-mail Address is incorrect\n";
	}

	var generalErrorMsg = "There was an error processing your request. Please try again later.";

	if (errormsg != '') {
		showFormErrorMsg('The following fields cannot be left blank: ' + errormsg, '#facebookFormError');
	}
	else if (invalidMsg != '') {
		showFormErrorMsg(invalidMsg, '#facebookFormError');
	}
	else {
		com.realprosystems.web.corporate.Utils.SaveGenericForm(firstname, lastname, state, country, email, phone, false, -1, "facebook",
            function (arg) { sendFacebookRequestSuccess(arg, '#facebookForm', '#facebookThankyou', 'Success', generalErrorMsg, '#facebookFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#facebookFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#facebookFormError'); }
            );
	}
}

function sendFacebookRequestSuccess(arg, fadeoutElem, fadeinElem, visistatMsg, errorMsg, errorElem) {
	if (arg == "true") {
		$('#facebookYouTube').slideDown('1000');
	}

	sendRequestSuccess(arg, fadeoutElem, fadeinElem, visistatMsg, errorMsg, errorElem);
}

/* AJAX NEWSLETTER SIGNUP FORM */

function newsletterSignup(elem) {

	var errormsg = '';
	var invalidMsg = '';

	var parent = $(elem).parents(".newsletterSignupContainer");
	var errorContainer = $(parent).find('.newsletterSignupError');
	var thankyouContainer = $(parent).find('.newsletterSignupThankyou');
	var formContainer = $(parent).find('.newsletterSignupForm');

	$(errorContainer).html('');
	$(errorContainer).css({ opacity: "0" });

	var name = $(parent).find(".newsletter_name").val();
	var email = $(parent).find(".newsletter_email").val();

	if (name == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Name');
	if (email == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (email.length <= 3) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (!(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w{2,4}$/.test(email))) {
		invalidMsg += "The E-mail Address is incorrect\n";
	}

	var generalErrorMsg = "There was an error processing your request. Please try again later.";

	if (errormsg != '') {
		showFormErrorMsg('The following fields cannot be left blank: ' + errormsg, errorContainer);
	}
	else if (invalidMsg != '') {
		showFormErrorMsg(invalidMsg, errorContainer);
	}
	else {
		com.realprosystems.web.corporate.Utils.SaveNewsletterSignup(name, email,
            function (arg) { sendRequestSuccess(arg, formContainer, thankyouContainer, 'Newsletter Signup Success', generalErrorMsg, errorContainer); },
            function (arg) { showFormErrorMsg(generalErrorMsg, errorContainer); },
            function (arg) { showFormErrorMsg(generalErrorMsg, errorContainer); }
            );
	}

}

/* AJAX REMAX FORM */
function sendRemaxRequest(elem) {

	//make sure the error container is hidden and cleared out before we begin
	$('#remaxDemoFormError').hide();
	$('#remaxDemoFormError').html('');
	$('#remaxDemoFormError').css({ opacity: "0" });

	//make sure the thank you container is hidden before we begin
	$('#remaxDemoFormThankyou').hide();
	$('#remaxDemoFormThankyou').css({ opacity: "0" });

	var errormsg = ''; //our placeholder for the general error
	var invalidMsg = ''; //our placeholder for the invalid error

	//get the values filled into the form
	var firstname = $('#remaxDemoForm-firstname').val();
	var lastname = $('#remaxDemoForm-lastname').val();
	var state = $('#remaxDemoForm-state').val();
	var email = $('#remaxDemoForm-email').val();
	var phone = $('#remaxDemoForm-phone').val();
	var promoid = $('#remaxDemoForm-promoid').val(); //sometimes hard coded
	var wantsdemo = $('#remaxDemoForm-wantsdemo').val(); //sometimes hard coded
	var country = '';

	//check for errors and call the generic function for format the error message
	if (firstname == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'First Name');
	if (lastname == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Last Name');
	if (state == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'State or Province');
	if (email == '') errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (email.length <= 3) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
	else if (!(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w{2,4}$/.test(email))) {
		invalidMsg += "The E-mail Address is incorrect\n";
	}

	var generalErrorMsg = "There was an error processing your request. Please try again later."; //this gets passed to our ajax success function
	
	if (errormsg != '') { //if a general error, show the error msg
		showFormErrorMsg('The following fields cannot be left blank: ' + errormsg, '#remaxDemoFormError');
	}
	else if (invalidMsg != '') { //if an invalid error, show the error message
		showFormErrorMsg(invalidMsg, '#remaxDemoFormError');
	}
	else {
		/*
			if no error, call our ajax request to save the form
			use the generic success/error messages and pass them the containers that we are using to show this
			the last parameter that is being passed "remax" denotes what type of form this is
		*/
		com.realprosystems.web.corporate.Utils.SaveGenericForm(firstname, lastname, state, country, email, phone, wantsdemo, promoid, "remax",
            function (arg) { sendRequestSuccess(arg, '#remaxDemoForm', '#remaxDemoFormThankyou', 'Preview Success', generalErrorMsg, '#remaxDemoFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#remaxDemoFormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#remaxDemoFormError'); }
            );
}
}

function sendLandingPageRequest(elem) {

    $('#FormError').hide();
    $('#FormError').html('');
    $('#FormError').css({ opacity: "0" });

    $('#Thankyou').hide();
    $('#Thankyou').css({ opacity: "0" });

    var errormsg = '';
    var invalidMsg = '';

    var firstname = $('#firstname').val();
    var lastname = $('#lastname').val();
    var state = $('#facebookform-state').val();
    var email = $('#email').val();
    var phone = $('#phone').val();
    var productInterest = $('#productInterest').val();
    var promoid = $('#promoid').val();
    var wantsdemo = $('#wantsdemo').val();
    var resourceLocation = $('#resourceLocation').val();
    var country = '';

    if (firstname == '' || firstname == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'First Name');
    if (lastname == '' || lastname == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'Last Name');
    if (state == '' || state == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'State or Province');

    if (email == '' || email == undefined) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
    else if (email.length <= 3) errormsg = constructSimpleFormErrorMsg(errormsg, 'Email Address');
    else if (!(/^\w+([\.\-]\w+)*@\w+([\.\-]\w+)*\.\w{2,4}$/.test(email))) {
        invalidMsg += "The E-mail Address is incorrect\n";
    }

    var generalErrorMsg = "There was an error processing your request. Please try again later.";

    if (errormsg != '') {
        showFormErrorMsg('The following fields cannot be left blank: ' + errormsg, '#FormError');
    }
    else if (invalidMsg != '') {
        showFormErrorMsg(invalidMsg, '#FormError');
    }
    else {
        com.realprosystems.web.corporate.Utils.SaveGenericForm(firstname, lastname, state, country, email, phone, wantsdemo, promoid, productInterest,
            function (arg) { sendLandingPageRequestSuccess(arg, '#SignupForm', '#Thankyou', 'Success', generalErrorMsg, '#FormError', resourceLocation); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#FormError'); },
            function (arg) { showFormErrorMsg(generalErrorMsg, '#FormError'); }
            );
    }
    return false;
}
function sendLandingPageRequestSuccess(arg, fadeoutElem, fadeinElem, visistatMsg, errorMsg, errorElem, resourceLocation) {
    if (arg == "true") {
        window.open(resourceLocation);
    }

    sendRequestSuccess(arg, fadeoutElem, fadeinElem, visistatMsg, errorMsg, errorElem);
}
