//init - bosyotech
//so we don't have to type dojo.query(...) everytime sheez
var errorDialog;
var popup_open = 0;
var popup_timer_id=null;
var docBaseUrl = window.location.protocol + '//' + window.location.host + '/' + basepath() + '/cases/';
var cookieLifeTime = 15; //minute
var baseUrl = window.location.protocol + '//' + window.location.host + '/';
var thankyouPage = baseUrl + 'thankyou.html';
var loadingPage = baseUrl + 'loading.html';


function $(arg) {return dojo.query(arg);}
function basename(path) {return path.replace(/\\/g,'/').replace( /.*\//, '' );}
function basepath() {
	var b = '';
	var p_array = window.location.pathname.split('/');
	for (var i = 1; i < p_array.length-1; ++i) {
		b += '/' + p_array[i];
	}
	return b;
}

dojo.addOnLoad(function(){

	//change Pay Now and Login links direct to:  https://www.rentpayment.com/pay/login.html?pc=WJC6ITS479
	$(".header_login a").attr("href","https://www.rentpayment.com/pay/login.html");


	$("#productlearnmore_button").onmouseover(function (o) {
		dojo.attr(o,"src","images/learnmore_hover.png");
	});

	$("#productlearnmore_button").onmouseout(function (o) {
		dojo.attr(o,"src","images/learnmore.png");
	});

	$('.dojoxFisheyeListItemLabel').forEach(function(label){
		label.innerHTML = "<img src='" + label.innerHTML + "' />";
	});

	//nav bar
	$('.products a, .company_info a, .learn_more a, .contact_us a').forEach(function(e){

		if ($($(e).children()[0]).attr('src')[0].indexOf('_over') == -1) {

			dojo.connect(e, 'onmouseover', function(o){
				var productsImg = $(this).children()[0];
				var src = $(productsImg).attr('src');
				var extPos = src[0].indexOf('.jpg');
				if (extPos != -1) {
					src = src[0].substring(0, extPos) + '_over.jpg';
					$(productsImg).attr('src', src);
				}
			});

			dojo.connect(e, 'onmouseout', function(o){
				var productsImg = $(this).children()[0];
				var src = $(productsImg).attr('src');
				var extPos = src[0].indexOf('_over');
				if (extPos != -1) {
					src = src[0].substring(0, extPos) + '.jpg';
					$(productsImg).attr('src', src);
				}
			});

		}

	});

	//error dialog for lean more dialogs
	errorDialog = new dijit.Dialog({
		title:'Information',
		style:'display:none;width:400px',
		content:'<button>ok</button>'
	});

	dojo.connect(errorDialog, 'hide', function(h){
		dojo.removeClass(dojo.body(), 'tundra');
		$('#learnMoreDialog .dijitDialogTitleBar').style('display','');
		$('#learnMoreDialog').addClass('dijitDialog');
	});

	dojo.connect(errorDialog, 'show', function(h){
		$('#learnMoreDialog').removeClass('dijitDialog');
		$('#learnMoreDialog .dijitDialogTitleBar').style('display','none');
		dojo.addClass(dojo.body(), 'tundra');
	});

	//lead sources
	var leadUrls = {
		'twitter.html':'Twitter',
		'google.html':'Google',
		'spherexx.html':'Spherexx',
		'twitter':'Twitter',
		'google':'Google',
		'spherexx':'Spherexx',
		'moreinformation.html':'More_Info',
		'creditcards.html':'Credit_Cards',
		'whycreditcards.html':'Credit_Cards',
		'creditcardbenefits.html':'Credit_Cards',
		'userinterface.html':'Credit_Cards',
		'creditcardsolutions.html':'Credit_Cards',
		'echeckbenefits.html':'E_Check',
		'paymentoptions.html':'E_Check',
		'services.html':'Premium_Services',
		'accountingintegration.html':'Accounting_Integration',
		'checkscanning.html':'Check_Scanning',
		'bankintegration.html':'Bank_Integration',
		'serviceintegration.html':'Service_Integration',
		'paybyphone.html':'Paybyphone',
		'rentbytext.html':'Rentbytext'
	};

	//set learn_more_window form return url
	var formAction = $("#learn_more_window form").attr('action').toString()
	var urlIndex = formAction.search('url=');
	var newFormAction = formAction.substring(0,(urlIndex-1)) + '+Source%3A+' + leadUrls[basename(window.location.href)] + "&url="+escape(thankyouPage + '?l=' + basename(window.location.href).replace('.html',''));
	$("#learn_more_window form").attr('action',newFormAction)

	//social networking popup
	 var n = dojo.byId("social_networking_button");
	// open the tooltip when some node is clicked:

	$(n).onmouseover(function(e){
		clearInterval(popup_timer_id);
		var tmp = $("#social_networking_button").coords();

		var top = 504;
		var left = tmp[0].x - 25;
		$("#social_networking_popup").style("position","absolute").style("top",top+'px').style("left",left+'px').fadeOut().stop();

		 if(popup_open==0){
			$("#social_networking_popup").style("opacity",0).style("display","block");
			if (dojo.isIE) $("#social_networking_popup").style("opacity",1);
			else {
				$("#social_networking_popup").fadeOut().stop();
				$("#social_networking_popup").fadeIn().play();
			}

		 }else{
			$("#social_networking_popup").style("opacity",1).style("display","block");
		 }
		 popup_open=1;

	}).onmouseout(function(e){
		popup_timer_id = setInterval('hide_social_networking_popup()', 100);
	}).onclick(function(e){

		clearInterval(popup_timer_id);
		if(popup_open==1){
			hide_social_networking_popup();
		}else{

			$("#social_networking_popup").style("opacity",0).style("display","block").style("position","absolute");
			if( dojo.isIE ){
			   $("#social_networking_popup").style("opacity",1);
			}else{
				$("#social_networking_popup").fadeOut().stop();
				$("#social_networking_popup").fadeIn().play();
			}

			popup_open=1;
		}
	});

	var p = dojo.byId("social_networking_popup");
	// open the tooltip when some node is clicked:

	$(p).onmouseover(function(e){

		clearInterval(popup_timer_id);

	}).onmouseout(function(){
		popup_timer_id = setInterval('hide_social_networking_popup()', 100);
	});

});


/****************************************************************************/
function show_social_networking_popup() {
	if( dojo.isIE ) $("#social_networking_popup").style("opacity",1);
	else $("#social_networking_popup").fadeIn().play();
	popup_open=1;
}
function hide_social_networking_popup() {
    if( dojo.isIE ) {
        $("#social_networking_popup").style("opacity",0);
        $("#social_networking_popup").style("display",'none');
    }
    else $("#social_networking_popup").fadeOut({onEnd:function(){ $("#social_networking_popup").style("display",'none'); }}).play();
    popup_open=0;
    clearInterval(popup_timer_id);
}

/****************************************************************************/

function open_learn_more_window() {
	var opacity = 0.8;
	var fadeIn = 0;
	var fadeOut = 0;

	var browser = navigator.appName;
	if (browser =="Microsoft Internet Explorer") {
		opacity = 1;
		fadeIn = 0;
		fadeOut = 0;
	}


	$("#lmw_errors").innerHTML = '';
	$("#lmw_errors").style('display','none');
	$("#learn_more_window").style("display","block");
	dijit.byId('learnMoreDialog').show();

}

function close_learn_more_window() {
	dijit.byId('learnMoreDialog').hide();
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days * 24 * 60 * 60 * 1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	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);
}

function yapnav_switch(menu_item,action) {
	var effect = 'FadeIn';
	switch (menu_item) {
		case 'ys':
			if (action =='over') {
				$("#g_ys").fadeOut(0,function() {
						$("#c_ys").fadeIn(0, function() {ys_status = 'over';});
					}
				);
			}
			else {
				$("#c_ys").fadeOut(0,function() {
						$("#g_ys").fadeIn(0,function() {ys_status = 'out';});
					}
				);
			}
		break;

		case 'rp':
			if (action =='over') {
				$("#g_rp").fadeOut(0,function() {
						$("#c_rp").fadeIn(0, function() {rp_status = 'over';});
					}
				);
			}
			else {
				$("#c_rp").fadeOut(0,function() {
						$("#g_rp").fadeIn(0,function() {rp_status = 'out';});
					}
				);
			}
		break;

		case 'vrp':
			if (action =='over') {
				$("#g_vrp").fadeOut(0,function() {
						$("#c_vrp").fadeIn(0, function() {vrp_status = 'over';});
					}
				);
			}
			else {
				$("#c_vrp").fadeOut(0,function() {
						$("#g_vrp").fadeIn(0,function() {vrp_status = 'out';});
					}
				);
			}
		break;

		case 'srp':
			if (action =='over') {
				$("#g_srp").fadeOut(0,function() {
						$("#c_srp").fadeIn(0, function() {srp_status = 'over';});
					}
				);
			}
			else {
				$("#c_srp").fadeOut(0,function() {
						$("#g_srp").fadeIn(0,function() {srp_status = 'out';});
					}
				);
			}
		break;

		case 'dp':
			if (action =='over') {
				$("#g_dp").fadeOut(0,function() {
						$("#c_dp").fadeIn(0, function() {dp_status = 'over';});
					}
				);
			}
			else {
				$("#c_dp").fadeOut(0,function() {
						$("#g_dp").fadeIn(0,function() {dp_status = 'out';});
					}
				);
			}
		break;

		case 'ip':
			if (action =='over') {
				$("#g_ip").fadeOut(0,function() {
						$("#c_ip").fadeIn(0, function() {ip_status = 'over';});
					}
				);
			}
			else {
				$("#c_ip").fadeOut(0,function() {
						$("#g_ip").fadeIn(0,function() {ip_status = 'out';});
					}
				);
			}
		break;

		case 'up':
			if (action =='over') {
				$("#g_up").fadeOut(0,function() {
						$("#c_up").fadeIn(0, function() {up_status = 'over';});
					}
				);
			}
			else {
				$("#c_up").fadeOut(0,function() {
						$("#g_up").fadeIn(0,function() {up_status = 'out';});
					}
				);
			}
		break;
	}
}

function reset_scrollbar() {
	scroller.reset();
	scrollbar.reset();

	if (scrollbar.disabled) {
		$("#content_right_scrollbar_container > .Scrollbar-Track").style("background","white");
		$("#content_right_scrollbar_container > .Scrollbar-Track > .Scrollbar-Handle").style("background","white");
	}
	else {
		$("#content_right_scrollbar_container > .Scrollbar-Track").style("background","url(../images/scrollbars/custom_scroll_bar.png)");
		$("#content_right_scrollbar_container > .Scrollbar-Track > .Scrollbar-Handle").style("background","url(../images/scrollbars/custom_scroller_small.jpg)");
	}

	clearInterval(scrollbar_timer_id);
}

//fisheye actions
function onImageClick(msg) {
	window.open(msg);
}

//===================================
// learnmore dialog
//===================================
function markError(id) {
	var tmp = dojo.byId(id);
	if (tmp != undefined) {
		dojo.style(tmp, 'color', 'red');
		dojo.style(tmp, 'fontWeight', 'bold');
	}
}

function trim(s) {
    return s.replace(/^\s+|\s+$/, '');
}

function validateComments(fld) {
	var error = false;
	var illegalWords = /(?:\blink\b)|(?:\bhttp\b)/i ;

	if (fld.value.match(illegalWords)) {
		markError(fld.name + "_Label");
		error = true;
	}
	return error;
}

function validatePhone(fld) {
	var error = false;
	var phoneNumber = fld.value.replace(/[\-\s()\/+]/g , '') ;  // remove punctuation and whitespace
	var phoneFilter = /^\d{10}$/ ;

    if (!phoneFilter.test(phoneNumber)) {
		markError(fld.name + "_Label");
		error = true;
	}
	return error;
}

function validateEmail(fld) {
    var error = false;
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;

    if (fld.value == "") {
        markError(fld.name + "_Label");
        error = true;
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        markError(fld.name + "_Label");
        error = true;
    } else if (fld.value.match(illegalChars)) {
        markError(fld.name + "_Label");
        error = true;
    }
    return error;
}

function validateEmpty(fld) {
    var error = false;
    if (fld.value.length == 0 || fld.value == 'NONE') {
        markError(fld.name + "_Label");
        error = true;
    }
    return error;
}

function atLeastOne(fld) {

	if (HintedForm.atLeastOne[fld.name] == undefined)
		HintedForm.atLeastOne[fld.name] = [];
	HintedForm.atLeastOne[fld.name].push(fld);
	return false;

}

function validateUnits(fld) {
	var error = false;
	var tfld = trim(fld.value);
	var unitsFilter = /^\d+$/ ;

	if (tfld !== "") { // units is not a required field; no validation necessary if it's blank
		if (unitsFilter.test(tfld)) { // units must be all digits
			if (tfld < 1) { // number of units must be >= 1
				markError(fld.name + "_Label");
				error = true;
			}
		} else {
			markError(fld.name + "_Label");
			error = true;
		}
	}

	return error;
}


function validateFormOnSubmit(theForm) {
    var error = false;
    var emailError = false;
    var commentError = false;
    var phoneError = false;
    var unitsError = false;

    requiredFields = {'*Name':'1','*Email':'2','*Phone':'3'};

    //alert(theForm.elements.length);
    // clear out all error labels first
    for (index = 0; index < theForm.elements.length; index++) {
        var element = theForm.elements[index];
        if (element.name in requiredFields) {
            //alert(element.name + " is a " + element.type);
            if (element.type == 'text' || element.type == 'textarea' || element.type == 'select-one') {
                document.getElementById(element.name + "_Label").innerHTML = "";
            }
        }
    }

    // validate form elements
    for (index = 0; index < theForm.elements.length; index++) {
        var element = theForm.elements[index];
        try {
            if (element.name == '*Email') {
                if (validateEmail(element)) {
                    emailError = true;
                }
            } else if (element.name == '*Other') {
                 if (validateComments(element)) {
                     commentError = true;
                 }
            } else if (element.name == '*Phone') {
                 if (validatePhone(element)) {
                     phoneError = true;
                 }
            } else if (element.name == '*Units') {
                if (validateUnits(element)) {
                    unitsError = true;
                }
            } else if (element.type == 'text' || element.type == 'textarea' || element.type == 'select-one') {
                if (element.name in requiredFields) {
                    if (!error) {
                        error = validateEmpty(element);
                    } else {
                        validateEmpty(element);
                    }
                }
            }
        } catch (e) {
            continue;
        }
    }

    if (error || emailError || commentError || phoneError || unitsError) {
        var reason = "";
        if (error) {
            reason = "Please fill out all fields with a star <span style='color:red;font-weight:bold'>*</span>";
        }
        if (emailError) {
            if (error) {
                reason += " and";
            } else {
                reason += "Please";
            }
            reason += " enter a valid E-mail Address";
        }
        if (commentError) {
            if (error || emailError) {
                reason += ", and";
            } else {
                reason += "Please";
            }
            reason += " do not include the words <span style='color:red;font-weight:bold'>link</span> or <span style='color:red;font-weight:bold'>http</span> in the comments field";
        }
        if (phoneError) {
            if (error || emailError || commentError) {
                reason += ", and";
            } else {
                reason += "Please";
            }
            reason += " enter a 10-digit phone number";
        }
        if (unitsError) {
            if (error || emailError || commentError || phoneError) {
                reason += ", and";
            } else {
                reason += "Please";
            }
            reason += " enter the number of units";
        }
		errorDialog.attr('content', reason + '<p>&nbsp;</p><p><center><button onclick="errorDialog.hide();">OK</button></center></p>');
		errorDialog.show();
        return false;
    }

	close_learn_more_window();
	//~ errorDialog.attr('content', '<center>Sending message, please wait ...</center>');
	//~ errorDialog.show();
	var ty = window.open(loadingPage, 'thankyouWindow', 'toolbars=0,status=0,menubar=0,width=780,height=430,location=0');
	theForm.target = 'thankyouWindow';

	//setTimeout('submitFormFinally()', 3000);
	theForm.submit();
	if (ty != null)
		ty.focus();
    return false;
}

function submitFormFinally() {
	$('form').forEach(function(form){
		$(form).attr('name').forEach(function(n){
			if (n == 'learnmorepopup') {
				$(form).attr('onsubmit', function(e){return true;});
				form.submit();
			}
		});
	});
}

/* hinted form */

var HintedForm = {

	init : function(options) {

		if (options == undefined)
			options = {};

		this.hintColor = options.hintColor;
		if (this.hintColor == undefined)
			this.hintColor = '#666';
		this.textColor = options.textColor;
		if (this.textColor == undefined)
			this.textColor = '#000';

		this.requiredFields = options.requiredFields;
		this.afterSubmitCallback = options.afterSubmitCallback;
		this.beforeSubmitCallback = options.beforeSubmitCallback;
		this.onSubmitCallback = options.onSubmitCallback;

		$('.hinted_input').forEach(function(e){
			var i = $(e);
			var hint = i.attr('hint');
			i.val(hint);
			i.style('color',HintedForm.hintColor);

			i.connect('onfocus',function(f){
				if (i.val() == hint)
					i.val('');
				i.style('color',HintedForm.textColor);
			}).connect('onblur',function(b){
				if (i.val() == '') {
					i.val(hint);
					i.style('color',HintedForm.hintColor);
				}
			});
		});
	},

	validate : function(formId) {

		var theForm = dojo.byId(formId);
		var reason = '';
		var focusElement = null;
		var optionalElements = [];
		this.atLeastOne = {};

		if (this.beforeSubmitCallback != undefined && this.beforeSubmitCallback(theForm) == false)
			return false;

		$('.hinted_input').forEach(function(e){
			dojo.style(e, 'color', this.hintColor);
		});

		for (index = 0; index < theForm.elements.length; index++) {
			var element = theForm.elements[index];
			if (element.name in this.requiredFields &&
				(this.requiredFields[element.name](element) ||
					element.value == $(element).attr('hint'))) {

				dojo.style(element, 'color', 'red');
				reason += this.requiredFields[element.name + '_Error'] + '<br/>';
				if (focusElement == null)
					focusElement = element;
			}
			else if (element.value == element.name) {
				optionalElements.push(element);
			}
		}

		for (var a1 in this.atLeastOne) {

			var hasAtLeastOne = false;
			for ( i=0; i<this.atLeastOne[a1].length; ++i ) {
				var chk = this.atLeastOne[a1][i];
				if (chk.checked) {
					hasAtLeastOne = true;
					break;
				}
			}

			if (hasAtLeastOne == false) {
				reason += this.requiredFields[a1 + '_Error'] + '<br/>';
			}

		}

		if (reason != '') {
			if (focusElement != null)
				focusElement.focus();

			errorDialog.attr('content', reason + '<p>&nbsp;</p><p><center><button onclick="errorDialog.hide();">OK</button></center></p>');
			errorDialog.show();

			return false;
		}

		for (i=0;i<optionalElements.length;++i)
			optionalElements[i].value = '';

		if (this.onSubmitCallback != undefined)
			this.onSubmitCallback(theForm);

		//DEBUG
		//~ return false;

		if (this.afterSubmitCallback != undefined) {
			if (this.afterSubmitCallback.delay != undefined)
				setTimeout(this.afterSubmitCallback.callback, this.afterSubmitCallback.delay);
			else
				return this.afterSubmitCallback.callback();
		}

		return true;

	}

};

/* end hinted form */

