var RDR = YAHOO.namespace("RDR");
var winReports;
var isEven = function(value) {if (value%2 == 0)	{return true;} return false; };
// Array.splice() - Remove or replace several elements and return any deleted elements

var arrsplice = function(arr, a, c ) {
  var i = 0, e = arguments, d = arr.copy(), f = a, l = arr.length;
  if( !c ) { c = l - a; }
  for( i; i < e.length - 2; i++ ) { arr[a + i] = e[i + 2]; }
  for( a; a < l - c; a++ ) { arr[a + e.length - 2] = d[a - c]; }
  arr.length -= c - e.length + 2;
  return d.slice( f, f + c );
 };

if(!Array.indexOf){
    Array.prototype.indexOf = function(obj){
        for(var i=0; i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
    }
}

RDR.siteurl = "http://www.rdresearch.com";
RDR.siteurlS = "https://www.rdresearch.com";

YAHOO.util.Get.script('src/connection.js');

(function() { 
    var Dom = YAHOO.util.Dom, 
        Event = YAHOO.util.Event,
        Connect = YAHOO.util.Connect,
        JSON = YAHOO.lang.JSON,
		Cookie = YAHOO.util.Cookie;

	var searchDefault = "Search...",
		fontSize = 3;

	var cEvents = {};								//
													//
	if (RDR.cEvents)	{								//	This is only needed because stupid javascript isn't
		cEvents.start = RDR.cEvents.start;			//  loading connection.js in time for RDR.cEvents to be
		cEvents.failure = RDR.cEvents.failure;		//  defined.  Especially since this is a function I can
		cEvents.complete = RDR.cEvents.complete;		//  call later.
	} else {
		cEvents.start = function(){};
		cEvents.failure = function(){};
		cEvents.complete = function(){};
	}

	// Load the session object into the client
	RDR.loadSession = function(){
		
		var sessionloader = Connect.asyncRequest('GET',"./?loadSession", {
			success: function(o) {
				response = null;
				try  { response = JSON.parse(o.responseText);}
				catch (e){window.alert("Error in parsing session response from server.");return;}

				if (response.error)
					window.alert(response.error);
				else
					RDR.session = response.session;
			},

			timeout: 10000
		});
	};

	Event.addListener(window,'load',function() {

	});

	Event.addListener(window,'unload',function() {

	});

	//RDR.loadSession();

	RDR.searchButton = new YAHOO.widget.Button('site-search-submit');

	Event.onContentReady("mainmenu", function () { 
		
		RDR.mainMenu = new YAHOO.widget.MenuBar("mainmenu",{
			//hidedelay: 750, 
			lazyload: true
		}); 

		RDR.mainMenu.render();

		RDR.mainMenu.show();

	});

	RDR.submitContactForm = function() {
		
		var hasError = false;
		var errors = '';
		var i,input;
		var requiredInputs = Dom.getElementsByClassName('required','input','contact-form');
		var requiredSelects = Dom.getElementsByClassName('required','select','contact-form');

		Dom.setStyle('pageerror','display','none');
		Dom.get('pageerror').innerHTML = '';

		Connect.setForm('contact-form');

		for (i = 0; i < requiredInputs.length; i++){
			
			if (requiredInputs[i].value == '' && requiredInputs[i].id != 'contact-subject_other')
				errors += '<div>Please enter your '+requiredInputs[i].name+'.</div>';
		}

		for (i = 0; i < requiredSelects.length; i++){
			if (requiredSelects[i].id == "contact-subject_dd") {
				if (requiredSelects[i].value == '')
					errors += '<div>Please select a subject.</div>';
				else if (requiredSelects[i].value == 'Other' && Dom.get('contact-subject_other').value == '')
					errors += '<div>Please enter a subject in the space provided.</div>';
			}
		}

		if (document.getElementById('contact-message').value == '')
			errors += '<div>Please enter a message.</div>';

		if (errors != '') hasError = true;		

		if (hasError) {

			Dom.get('pageerror').innerHTML = errors;
			Dom.setStyle('pageerror','display','block');

		} else {

			Dom.setStyle(Dom.getElementsByClassName('pagebody','div')[0],'display','none');
			Dom.setStyle('pageloading','display','block');

			var submitForm = Connect.asyncRequest("POST","/_goPostContactForm",{
				
				start: cEvents.start,
				failure: cEvents.failure,
				complete: cEvents.complete,

				success: function(o) {

					response = null;
					try  { response = JSON.parse(o.responseText);}
					catch (e){window.alert("Error in parsing session response from server.");return;}

					if (!YAHOO.lang.isNull(response)) {
						if (response.error) {
							window.alert(response.error);
							Dom.setStyle(Dom.getElementsByClassName('pagebody','div')[0],'display','block');
						}
					} else {
						var foo = window.setTimeout(function(){

							
							Dom.setStyle('pagethanks','display','block');
							
							window.setTimeout(function(){
								document.location.href="/";
							},10000);

						},1000);
					}

					Dom.setStyle('pageloading','display','none');
				},
			
				timeout: 10000
			
			});
		}

	};

	Event.onDOMReady(function() { 
		
		if (Dom.get('pagetools')) {

			Dom.get('tool-print').onclick = function() {

				window.print();
				return false;
			}

			Dom.get('tool-fontminus').onclick = function() {

				if (fontSize > 0) {
					var newsize = parseFloat(Dom.getStyle(Dom.get('column-middle'),'font-size').split('px')[0]) - 1.1;
					Dom.setStyle([Dom.get('column-middle'),Dom.get('column-right')],'font-size',newsize+"px");
					fontSize = fontSize - 1;
				}

				return false;
			}

			Dom.get('tool-fontplus').onclick = function() {

				if (fontSize < 7) {
					var newsize = parseFloat(Dom.getStyle(Dom.get('column-middle'),'font-size').split('px')[0]) + 1.1;
					Dom.setStyle([Dom.get('column-middle'),Dom.get('column-right')],'font-size',newsize+"px");
					fontSize = fontSize + 1;
				}

				return false;
			}

			Dom.get('tool-email').onclick = function() {

				return false;
			}

			Dom.get('tool-pdf').onclick = function() {

				return false;
			}
		}

		if (Dom.get('contact-form')) {

			var submitButton = new YAHOO.widget.Button('contact-submit');
			submitButton.on("click",RDR.submitContactForm);

			Dom.setStyle('contact-submit','visibility','visible');

			Event.addListener('contact-subject_dd','change',function(){
				if (this.value == "Other")
					Dom.setStyle('contact-subject_other','display','block');
				else
					Dom.setStyle('contact-subject_other','display','none');
			});
		}

		// Home carousel
		if (Dom.get('home-carousel')) {

			RDR.carouselItems = Dom.getElementsByClassName('carousel-item','div','home-carousel');
			RDR.carouselButtons = Dom.get('home-carousel-buttons').getElementsByTagName('a');

			for (i = 0; i < RDR.carouselButtons.length; i++)
				RDR.carouselButtons[i].onclick=function(){return false;};

			Event.addListener(RDR.carouselButtons,'click',function() {
				
				var tid = this.id.split("-")[2];

				Dom.removeClass(RDR.carouselButtons,'active')
				Dom.addClass(this,'active');

				Dom.setStyle(RDR.carouselItems,'display','none');
				Dom.setStyle(RDR.carouselItems[tid-1],'display','block');
			});
		}

		/***********************   ADMIN   ***********************************/

		if (Dom.get('client_dashboard')) {

			if (Dom.get('client-reports')){

				Event.addListener(Dom.get('client-reports').getElementsByTagName('a'),'click',function(e) {

					winReports = window.open(this.href,"winReports","width=900,height=600,status=0,toolbar=0,location=0,directories=0,resizable=1,scrollbars=1");
					winReports.focus();

					Event.preventDefault(e);
				});
			}		
		
		}

		/*********************************************************************/
		
		/***********************   LOGIN   ***********************************/

		if (Dom.get('login')) {

			RDR.btnLogin = new YAHOO.widget.Button('login-submit');
		}

		if (Dom.get('login-resetpassword')) {

			RDR.btnSendPass = new YAHOO.widget.Button('resetpassword-submit');
			RDR.btnCancelSendPass = new YAHOO.widget.Button('resetpassword-cancel');
		}

		if (Dom.get('login-updatepassword')) {

			RDR.btnSendPass = new YAHOO.widget.Button('updatepassword-submit');
		}

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



	});//--Event.onDomReady

})(); //--function()