
var _pageName = String('');
var _pageTarget = String('');
var userLoggedIn = false;
var controlClicked = "";
var logoutControlName = "";
var isFeedbackRequired = false;
var defaultOptionControl = String('');

//this flag is set true when feedback is submitted so that page focus is not shifted to top
var feedbackSubmitted = false;

function dopopup()
{  
    
    if (document.getElementById('divFeedBack') != null)
        isFeedbackRequired = true;
        
    //Get a tags 
	var feedbackLinks = document.getElementsByTagName("a");
	
	//Get area tags from header control
	var feedbackArea = document.getElementsByTagName("area");
	
	var browsername=navigator.appName;
	
	//Attach method to assign feedback layer in case of IE 7.0
	if (browsername.indexOf("Microsoft")!=-1)
	{
	    for (var i = 0; i < feedbackLinks.length; i++) 
	    {
	        if(feedbackLinks[i].attributes['class'])//IE8 throws object expected error sometimes, to avoid that error check is added.
	        {
                if (feedbackLinks[i].attributes['class'].value == "feedback")
	            {  	
	                if (isFeedbackRequired)            
	                    feedbackLinks[i].onclick = openFeedbackLayer;
	                else
	                    feedbackLinks[i].onclick = SetExplorerBackButtonStatus;
	            }
	        }
	    }
	    
	    //Handler for area tags
	    for (var i = 0; i < feedbackArea.length; i++) 
	    {	       
	        if (feedbackArea[i].attributes['class'].value == "feedback")
	        {
	            if (isFeedbackRequired)  	            
	                feedbackArea[i].onclick = openFeedbackLayer;
	            else
	                feedbackArea[i].onclick = SetExplorerBackButtonStatus;
	        } 
	    }
	}
	else //Attach method to assign feedback layer in case of Firefox
	{	
	       
	    //Handler for a tags
	    for (var i = 0; i < feedbackLinks.length; i++) 
	    {
            if (feedbackLinks[i].getAttribute("class") == "feedback")
	        {  	
	            if (isFeedbackRequired)            
	                feedbackLinks[i].onclick = openFeedbackLayer;
	            else
	                feedbackLinks[i].onclick = SetExplorerBackButtonStatus;
	        }
	    }
	    
	    //Handler for area tags
	    for (var i = 0; i < feedbackArea.length; i++) 
	    {	       
	        if (feedbackArea[i].getAttribute("class") == "feedback")
	        {
	            if (isFeedbackRequired)  	            
	                feedbackArea[i].onclick = openFeedbackLayer;
	            else
	                feedbackArea[i].onclick = SetExplorerBackButtonStatus;
	        }    	    
	    }
	}
	
	//Assign method to ask for user confirmation on logout when feedback layer is not there
	if (!isFeedbackRequired)
	{
	    if (logoutControlName != "")
	    {
	        if (document.getElementById(logoutControlName))
	        {
	            document.getElementById(logoutControlName).onclick = SetExplorerBackButtonStatus;
	            //document.getElementById(logoutControlName).onclick = confirmationOnLogout;	            
	        }
	    }
	}
	
}

function setCookie(cookieName,chkCookie)
{
    if (document.getElementById(chkCookie).checked)
    {
        document.cookie = cookieName + "=true";
    }
    
}

function getCookie(cookieName) {
	// first we'll split this cookie up into name/value pairs
	// note: document.cookie only returns name=value, not the other components
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	
	for ( i = 0; i < a_all_cookies.length; i++ )
	{
		// now we'll split apart each name=value pair
		a_temp_cookie = a_all_cookies[i].split( '=' );
		
		
		// and trim left/right whitespace while we're at it
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
	
		// if the extracted name matches passed cookieName
		if ( cookie_name == cookieName )
		{
			b_cookie_found = true;
			// we need to handle case where cookie has no value but exists (no = sign, that is):
			if ( a_temp_cookie.length > 1 )
			{
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			// note that in cases where cookie is initialized but no value, null is returned
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found )
	{
		return null;
	}
}	
	

function feedbackLayerClose(dvclose)
{    
	document.getElementById(dvclose).style.display="none";
	document.getElementById("transparentLayer").style.display="none";
}
	
	
function openFeedbackLayer(e)
{
   var event =  e || window.event;
   var cookieValue = getCookie("FSCalculatorFeedback");
   _pageName = this.href;
   _pageTarget = this.target;
   
   //Set controlClicked to identify that logout link was clicked
   controlClicked = (typeof event.target != "undefined")? event.target.id:event.srcElement.id;
   
   //If popup is disabled in cookie then don't open the layer and redirect to designated link
   if (cookieValue == 'true')
   {
        var redirectToPage = true;
        
        //Confirm that user wish to redirect in case logout has been clicked.
        if (controlClicked != "" && logoutControlName != "" && controlClicked == logoutControlName)
        {
            //redirectToPage = ShowRedirectMessage();
            redirectToPage=true;
        }
        
        if (redirectToPage) 
            redirectToNavigatedPage();
   }
   else
   {        
		if (event.stopPropagation) {
			event.stopPropagation();
		} else {
			event.cancelBubble = true;
		}		
		
		document.getElementById("divFeedBack").style.display="block";
		DisableInputForm("form1","transparentLayer");
		var userInputArea = document.getElementById("divFeedBack").getElementsByTagName("textarea");
		
		//Clear the feedbacklayer with previously given user inputs 
		for (var i = 0; i < userInputArea.length; i++) 
	    {	       
	       userInputArea[i].value = "";
	    }
	    selectDefaultFeedbackOption(defaultOptionControl);
		
		if (userLoggedIn == 'true')
		{
		    var dvRegistration = document.getElementById('hdnNonLoggedInUser').value;
		    document.getElementById(dvRegistration).style.display = "none";
		}
		
		positionLayer("divFeedBack");
	}
		
	return false;
}

function redirectToNavigatedPage()
{  
    linkClicked = true;
    
    if (_pageTarget == "")
    {
        _pageTarget = "_self";
    }
    
    window.open(_pageName,_pageTarget);
    
    _pageName = "";
    _pageTarget = "";
    
    linkClicked = true;
    
    return false;
}

function positionLayer(boxElem)
{
    document.getElementById(boxElem).style.display='block'; 
    document.getElementById(boxElem).style.visibility='hidden'; 
    

    var browsername=navigator.appName;
    if (browsername.indexOf("Microsoft")!=-1){
        elemHeight = document.documentElement.clientHeight;
        scrolly = document.documentElement.scrollTop;
    } else {
        elemHeight = window.innerHeight;
        scrolly = window.scrollY;                
    }
    
    elemTop = parseInt((elemHeight - document.getElementById(boxElem).offsetHeight)/2);
    
    document.getElementById(boxElem).style.top=elemTop+scrolly+'px';
    document.getElementById(boxElem).style.left='210px';
	document.getElementById(boxElem).style.position='absolute';
	document.getElementById(boxElem).style.visibility='visible'; 
}

function selectDefaultFeedbackOption(ctrlName)
{
    document.getElementById(ctrlName).checked = true;
    defaultOptionControl = ctrlName;
}

function ignoreFeedbackPopup(feedbackPopup,cookieName,chkControl)
{
    feedbackLayerClose(feedbackPopup);
    setCookie(cookieName,chkControl);
    
    if (controlClicked != "" && logoutControlName != "" && controlClicked == logoutControlName)
    {
        __doPostBack(logoutControlName,'');
    }
    
    redirectToNavigatedPage();
}

function closeLayerIn2Seconds(layerName)
{
    feedbackSubmitted = true;
    window.setTimeout("feedbackLayerClose('" + layerName + "');redirectToNavigatedPage();",2000);
}

//Method to attach feedback layer on logout control
function feedbackOnLogout(logoutCtrl)
{
    if (isFeedbackRequired)
    {
        dopopup();
    }
     
    userLoggedIn = 'true';
    logoutControlName = logoutCtrl;
}

//Method to ask for confirmation on click of logout
function confirmationOnLogout()
{
    var logoutConfirm = true;
   
    if (!isFeedbackRequired)
    {
        //logoutConfirm = ShowRedirectMessage();
    }
   
   return logoutConfirm;
}

function closeFeedbackLayer()
{
    if (isFeedbackRequired)
    {
        document.getElementById("divFeedBack").style.display="none";
    }
}



