﻿

//////////////////////////////////////////////////
//  TOGGLE VIEW v1                              //	
//   Author : Greg Dunn                         //		 
//   Date : 06/12/08                            // 		
//////////////////////////////////////////////////
//  REQUIRES                                    // 
//                                              //
//////////////////////////////////////////////////

// toggleDiv Constructor
toggleView = function () {
    
				
    ///////////////////////////		
    //config - Private 
    ///////////////////////////			
    var config = {
                lightbox:[],
				view1:[],
				initialState: '1'				
    }
	
    ///////////////////////////		
		//init - Public  
    ///////////////////////////		
    var init = function (lightbox, view1, initState)
		{
			 ////console.log('THINK.toggleView.init');
             config.lightbox = lightbox;
			 config.view1 = view1;
			 config.initialState = initState;
			 var view1State;
		   if (config.initialState == '1') {
					 view1State = 'block';	
			 } else {
				   view1State = 'none';
			 }
			 elem(lightbox).style.display = view1State;
			 elem(view1).style.display = view1State;
			 
			 ////console.log('toggleView.config.view1 : ' + config.view1);
			 ////console.log('toggleView.config.initialState : ' + config.initialState);
		}	
    
	///////////////////////////	
	//elem - Private
    ///////////////////////////				
		var elem = function(id)	{
			var element = typeof id !== 'string' ? element : document.getElementById(id);
		 	return element;
		}
	///////////////////////////	
    //getLightbox - Public
	///////////////////////////	
		var getLightbox = function () {
			  ////console.log('THINK.toggleView.getLightbox');
				return elem(config.lightbox).id;
		}		
		
	///////////////////////////	
    //setLightbox - Public
	///////////////////////////	
		var setLightbox = function (lightbox) {
			  ////console.log('THINK.toggleView.setLightbox');			
				config.lightbox = lightbox;
				return elem(config.lightbox).id;
		}	
	///////////////////////////	
    //getView1 - Public
	///////////////////////////	
		var getView1 = function () {
			  ////console.log('THINK.toggleView.getView1');
				return elem(config.view1).id;
		}		
		
	///////////////////////////	
    //setView1 - Public
	///////////////////////////	
		var setView1 = function (view1) {
			  ////console.log('THINK.toggleView.setView1');			
				config.view1 = view1;
				return elem(config.view1).id;
		}		
		
	///////////////////////////	
    //currentState - Public
	///////////////////////////	
		var currentView = function () {
			  ////console.log('THINK.toggleView.currentView');
				var currentView;
				if ((elem(config.view1).style.display == 'block')) {
					  currentView = '1';
				} else if ((elem(config.view1).style.display == 'none')){
					  currentView = '0';
				} else {
					  currentView = 'ERROR';
				}
				////console.log('THINK.toggleDiv.currentView : ' + currentView);
   			return currentView;
		}	
		
	///////////////////////////	
    //toggle - Public
	///////////////////////////	
		var toggle = function() {
			  ////console.log('THINK.toggleView.toggle');			
				var view1State;
				var view2State;
				switch (currentView()) {
						case "1":
						    view1State = 'none';
						    break;
						case "0":
						    view1State = 'block';
						    break;
						default:
						    //reset to inital state
						    if (config.initialState == '1') {
								    view1State = 'block';	
								} else {
									view1State = 'none';
								}
						    break;
				}
				elem(config.lightbox).style.display = view1State;
				elem(config.view1).style.display = view1State;
				return currentView();
		}
		
		
	//////////////////////////////////////////
    // DECLARE PUBLIC PROPERTIES AND METHODS
	//////////////////////////////////////////		
    return { 
        init: init,
     	getLightbox: getLightbox,
		setLightbox: setLightbox,        
     	getView1: getView1,
		setView1: setView1,
		currentView: currentView,
		toggle: toggle
    }
}();//() instantly runs above class	

//////////////////////////////////////////////////
//PROPERTY REFERENCE TEST
	//////console.log('THINK.toggleView.config.colors - ' + THINK.toggleView.config.colors);//	~=> Error		
	//////console.log('toggleView.config.colors - ' + toggleView.config.colors);// ~=> Error
	//////console.log('config.colors - ' + config.colors); // ~=> 1,2,3
	//////console.log('colors - ' + colors);// ~=> Error
//////////////////////////////////////////////////

var populateLightboxForm = function(fname, lname, zip, type, view) {
    //alert('populateForm');
    //alert(fname + ' ' + lname + ' ' + zip + ' ' + type);
    document.getElementById('firstNameTextBox').value = fname;
    document.getElementById('lastNameTextBox').value = lname; 
    document.getElementById('zipCodeTextBox').value = zip;
    
	var title;	
    var TitleLB = document.getElementById('TitleLB');
    var serviceType =  document.getElementById('serviceType');
    var footnote = document.getElementById('edFootnote');
    var hiddenTitle = document.getElementById('hiddenTitle');
    switch(view) {
    case '5':
        title = '$30 OFF PEST CONTROL SERVICE*';
        hiddenTitle.value = '$30 OFF PEST CONTROL SERVICE';
        serviceType.style.display = 'none';
        footnote.style.display = 'block';
        break;  
    case '4':
        title = 'SCHEDULE MOSQUITO SERVICE';
        hiddenTitle.value = 'SCHEDULE MOSQUITO SERVICE';
        serviceType.style.display = 'none';
        footnote.style.display = 'none';
        break;
    case '3':
        title = 'SCHEDULE FREE TERMITE INSPECTION';
        hiddenTitle.value = 'SCHEDULE FREE TERMITE INSPECTION';
        serviceType.style.display = 'none';
        footnote.style.display = 'none';
        break;
    case '2':
        title = 'SCHEDULE PEST CONTROL SERVICE';
        hiddenTitle.value = 'SCHEDULE PEST CONTROL SERVICE';
        serviceType.style.display = 'none';
        footnote.style.display = 'none';
        break;  
    default:
        title = 'SCHEDULE SERVICE';
        hiddenTitle.value = 'SCHEDULE SERVICE';
        serviceType.style.display = 'block';
        footnote.style.display = 'none';
    }
    TitleLB.innerHTML = title; 
}

var closeLightbox = function() {
    toggleView.toggle('0');
    hideSelects('visible');
    void(0);
}

var openLightbox = function(fname, lname, zip, type, view) {
    ////console.log('openLightbox');
    toggleView.toggle('1');
    hideSelects('hidden');
    $("#SSNLightbox select").css("visibility", "visible");
    ////console.log(fname + ' ' + lname + ' ' + zip + ' ' + type);
    populateLightboxForm(fname, lname, zip, type, view);
    scroll(0, 0);
}

var processForm = function(form, pcHiddenFieldId, tcHiddenFieldId) {
    ////console.log('processForm');
    
    var main;
    if (form != 'widget')
        main = "Main";
    openLightbox(document.getElementById("fName" + main).value, document.getElementById("lName" + main).value, document.getElementById('zipCode' + main).value, "PC", '1');
    
    //    var type;
    //    if (form == 'widget') {
    //        ////console.log('! widget');
    //        var pcState = document.getElementById('typePC').checked;
    //        var tcState = document.getElementById('typeTC').checked;
    //        if ((pcState == true) && (tcState == false)) {
    //            ////console.log('if');
    //            type = 'PC';
    //            document.getElementById(pcHiddenFieldId).value = "true";
    //            document.getElementById(tcHiddenFieldId).value = "false";
    //            document.getElementById("schedulePref").style.display = 'none';
    //        } else if ((pcState == false) && (tcState == true)) {
    //            ////console.log('else if');
    //            type = 'TC';
    //            document.getElementById(pcHiddenFieldId).value = "false";
    //            document.getElementById(tcHiddenFieldId).value = "true";
    //            document.getElementById("schedulePref").style.display = 'block';
    //        } else {
    //            ////console.log('else else');
    //            type = 'None';
    //            document.getElementById(pcHiddenFieldId).value = "true";
    //            document.getElementById(tcHiddenFieldId).value = "false";
    //            document.getElementById("schedulePref").style.display = 'none';
    //        }
    //        openLightbox(document.getElementById('fName').value, document.getElementById('lName').value, document.getElementById('zipCode').value, type, '1');

    //    } else {
    //        ////console.log('! main');
    //        var pcState = document.getElementById('typePCMain').checked;
    //        var tcState = document.getElementById('typeTCMain').checked;
    //        if ((pcState == true) && (tcState == false)) {
    //            ////console.log('if');
    //            type = 'PC';
    //            document.getElementById(pcHiddenFieldId).value = "true";
    //            document.getElementById(tcHiddenFieldId).value = "false";
    //            document.getElementById("schedulePref").style.display = 'none';
    //        } else if ((pcState == false) && (tcState == true)) {
    //            ////console.log('else if');
    //            type = 'TC';
    //            document.getElementById(pcHiddenFieldId).value = "false";
    //            document.getElementById(tcHiddenFieldId).value = "true";
    //            document.getElementById("schedulePref").style.display = 'block';
    //        } else {
    //            ////console.log('else else');
    //            type = 'None';
    //            document.getElementById(pcHiddenFieldId).value = "true";
    //            document.getElementById(tcHiddenFieldId).value = "false";
    //            document.getElementById("schedulePref").style.display = 'none';
    //        }

    //        ////console.log('@!');
    //        ////console.log(document.getElementById('fNameMain').value + ' ' + document.getElementById('lNameMain').value + ' ' + document.getElementById('zipCodeMain').value + ' ' + type);
    //        ////console.log('!');
    //        openLightbox(document.getElementById('fNameMain').value, document.getElementById('lNameMain').value, document.getElementById('zipCodeMain').value, type, '1');
    //    }
}

//hide selects on page - copy code below
function hideSelects(action) {
    if (action!='visible'){action='hidden';} {
        if (navigator.appName.indexOf("MSIE")) {
            for (var S = 0; S < document.forms.length; S++){
                for (var R = 0; R < document.forms[S].length; R++) {
                    if ((document.forms[S].elements[R].options) && (document.forms[S].elements[R].className !== 'visible')) {
                        document.forms[S].elements[R].style.visibility = action;
                    }
                }
            }
        }
    }
}    

$(document).ready(function(){
    toggleView.init('Lightbox', 'SSNLightbox', 0);
}); 

//Set lightbox to 100% height and center form
function getDocumentHeight(){
		return Math.max(document.body.scrollHeight,getWindowHeight());
}
function getWindowHeight(){
		
		return (self.innerHeight ||  document.documentElement.clientHeight || document.body.clientHeight || 0);
}

function getDocumentWidth(){	
		return Math.max(document.body.scrollWidth,getWindowWidth());
}
function getWindowWidth(){
		
		return (self.innerWidth ||  document.documentElement.clientWidth || document.body.clientWidth || 0);
}	

//Facebook
function fbs_click() {u=location.href;t=document.title;window.open('http://www.facebook.com/sharer.php?u='+encodeURIComponent(u)+'&t='+encodeURIComponent(t),'sharer','toolbar=0,status=0,width=626,height=436');return false;}
//

//Common Pests 
var showPopup = function(pest){
    var popup = document.getElementById(pest + 'Popup');
    popup.style.display = 'block';
}
var hidePopup = function(pest){
    var popup = document.getElementById(pest + 'Popup');
    popup.style.display = 'none';
}


//////////////
     
sendTo = function(site) {

    var thisURL = location.href;
    var encodedURL = encodeURIComponent(thisURL);
    var thisTitle = encodeURIComponent(document.title);
    var thisBody = encodeURIComponent('Orkin.com');
    //console.log(thisURL);
    //console.log(thisTitle);
    switch (site) {
        case 'digg':
            //console.log('digg - ' + thisURL);
            finalUrl = 'http://digg.com/submit?url=' + encodedURL + '&title=' + thisTitle + '&bodytext=' + thisBody + '&media=news&topic=educational';
            window.open(finalUrl,'newWindow');
            break;
        case 'stumbleupon':
            finalUrl = 'http://www.stumbleupon.com/submit?url=' + encodedURL;
            window.open(finalUrl,'newWindow');
            break;
        default:
            return false;            
    }
 
}
