
var _hoverPopPage = false;
var _prePopPageScrollY=0;

var _currentPop_permalink = null;
var _currentPop_type = null;


function findPosY(obj) {
	var curtop = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y) { 
		curtop += obj.y;
	}
	return curtop;
}

function findPosX(obj) {
	var curleft = 0;
	if (obj.offsetParent) {
		while (obj.offsetParent) {
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) {
		curleft += obj.x;
	}
	return curleft; 
}

function showTipAFriend(obj) {
    var tippop = document.getElementById('tipafriend_pop');
    if (tippop) {
        tippop.style.left = (findPosX(obj)-100)+'px';
        tippop.style.top = (findPosY(obj)-50)+'px';
        tippop.style.display='block'; 
   }
}
function sendTipToAFriend() {
    var tippop = document.getElementById('tipafriend_pop');
    var tippop_email = document.getElementById('tipafriend_email');
    var tippop_sendername = document.getElementById('tipafriend_sendername');
    var tippop_senderemail = document.getElementById('tipafriend_senderemail');
    var tippop_message = document.getElementById('tipafriend_message');
    var tippop_error1 = document.getElementById('tipafriend_error1');
    var tippop_error2 = document.getElementById('tipafriend_error2');
    var tippop_error3 = document.getElementById('tipafriend_error3');
    
    var sendername, senderemail, message, email;
    var valid = false;
    
    
    sendername = tippop_sendername.value.trim();
    senderemail = tippop_senderemail.value.trim();
    message = tippop_message.value.trim();
    email = tippop_email.value.trim();
    
    // validate email
    
    var regExpression =  /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3} \.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/
    var rx = new RegExp(regExpression);
    var matches = rx.exec(email);
    if (matches != null && email == matches[0]){
        valid = true
        tippop_error3.style.display='none';
    } else {
        valid = false;
        tippop_error3.style.display='block';
    }		
    
    if (sendername.length==0) {
        tippop_error1.style.display='block';
        valid = false;
    } else {
        tippop_error1.style.display='none';
    }
    
    if (valid) {       
        //Public Function SendPageToFriend(ByVal SenderName As String, ByVal SenderEmail As String, ByVal Message As String, ByVal FriendEmail As String, ByVal PageUrl As String) As Boolean
        White.Web.UI.Client.Service.TipAFriend.SendPageToFriend(sendername,senderemail, message, email, _currentPop_permalink);
        closeTipAFriend();
    }
}

function closeTipAFriend() {
    var tippop = document.getElementById('tipafriend_pop');
    var tippop_email = document.getElementById('tipafriend_email');
    var tippop_sendername = document.getElementById('tipafriend_sendername');
    var tippop_senderemail = document.getElementById('tipafriend_senderemail');
    var tippop_message = document.getElementById('tipafriend_message');
    
    tippop.style.display='none';
    tippop_email.value='';
    tippop_sendername.value='';
    tippop_senderemail.value='';
    tippop_message.value='';
}

function centerPopPageAnim(obj) { 
    var arrayPageSize = getPageSize();
    var elemWidth, pageWidth, elemLeft;
    
    elemWidth = obj.element.offsetWidth;
    pageWidth = arrayPageSize[0];    
    elemLeft = (pageWidth/2)-(elemWidth/2); 
    obj.element.style.left = elemLeft+'px';
}

function activatePoppedPrintCss() {
    var classname;
    if ($('body').className){
        classname = $('body').className;
        classname = classname.replace('popped','');
        classname = classname + ' popped';
        $('body').className = classname;
    }
}

function inactivatePoppedPrintCss() {  
    if ($('body').className){
        classname = $('body').className;
        classname = classname.replace('popped','');
        $('body').className = classname;
    }
}

function popExperience(pageId,link) {
   
    if (link) {
        _currentPop_permalink = link.href;
        _currentPop_type = 'experience';
    }
    
    var succeeded = function(result) {
        var poppage_sheet,poppage_segment,poppage_segment_loading; 
        var poppage_segment_anim = document.getElementById('poppage_segment_anim');
        var arrayPageScroll = getPageScroll();
        var arrayPageSize = getPageSize();
        
        activatePoppedPrintCss();
    
        poppage_segment_anim.style.width='10px';
        poppage_segment_anim.style.top='0px';
        poppage_segment_anim.style.left= '50%'
        poppage_segment_anim.style.height = '4000px'; 
         _prePopPageScrollY = arrayPageScroll[1];      
       
        new Effect.Parallel (
         [ 
            new Effect.Appear( poppage_segment_anim, { sync: true} ), 
            new Effect.ReSize( poppage_segment_anim, { sync: true, direction:'horiz', toSize:860, afterUpdate: centerPopPageAnim } )
         ]
         , { duration: 0.6 } 
        );  
       
        poppage_sheet = document.getElementById('poppage_sheet');	            
        poppage_segment = document.getElementById('poppage_segment');
        poppage_segment_loading=document.getElementById('poppage_segment_loading');
        	            
        poppage_sheet.innerHTML = result;
        
        poppage_segment_loading.style.display='none';
        
        setTimeout('showPopSegment()',600);        
        setTimeout('hideAnimSegment()',600); 
        setTimeout('lightboxInit()',1000);         
    }
    var failed = function() { alert('popExperience:Something went wrong'); }
	
    White.Web.UI.Client.Service.Experience.Render(pageId,succeeded,failed);
}

function reloadComments(issuePostId) {
    
    var succeeded = function(result) {
        var item_comments = document.getElementById('item_comments');
        var item_comments_count = document.getElementById('item_comments_count');
        
        var html, count;
        
        html = result['html'];
        count = result['count'];                          
        
        item_comments.innerHTML = html;
        item_comments_count.innerHTML = count;
    }   
    
    var failed = function(result) {
         
    }
    
    White.Web.UI.Client.Service.Issue.ReloadComments(issuePostId,succeeded,failed);

}
function saveIssuePostComment(issuePostId) {

    var succeeded = function(result) {
         reloadComments(issuePostId);
    }   
    
    var failed = function(result) {
    }
    
    var author, email, title, body, error;
    
    author = document.getElementById('comment_author').value;
    email = document.getElementById('comment_email').value;
    title = document.getElementById('comment_title').value;
    body = document.getElementById('comment_body').value;    
    error = document.getElementById('comment_error');
    
    if (author.length>0 && email.length>0 && title.length>0 && body.length>0) {
    
        White.Web.UI.Client.Service.Issue.CommentPost(issuePostId, author ,email, title, body,succeeded, failed);

        document.getElementById('comment_author').value='';
        document.getElementById('comment_email').value='';
        document.getElementById('comment_title').value='';
        document.getElementById('comment_body').value='';
        
        error.style.display='none';
    } else {
        // display input errormsg.
        error.style.display='';
    }
}

function popIssuePost(postId,link) {

    if (link) {
        _currentPop_permalink = link.href;
        _currentPop_type = 'issuepost';
    }

    var succeeded = function(result) {
        var poppage_sheet,poppage_segment,poppage_segment_loading; 
        var poppage_segment_anim = document.getElementById('poppage_segment_anim');
        var arrayPageScroll = getPageScroll();
        var arrayPageSize = getPageSize();
    
        activatePoppedPrintCss();
            
        poppage_segment_anim.style.width='10px';
        poppage_segment_anim.style.top='0px';
        poppage_segment_anim.style.left= '50%'
        poppage_segment_anim.style.height = '4000px'; 
         _prePopPageScrollY = arrayPageScroll[1];      
       
        new Effect.Parallel (
         [ 
            new Effect.Appear( poppage_segment_anim, { sync: true} ), 
            new Effect.ReSize( poppage_segment_anim, { sync: true, direction:'horiz', toSize:560, afterUpdate: centerPopPageAnim } )
         ]
         , { duration: 0.6 } 
        );  
       
        poppage_sheet = document.getElementById('midsizepoppage_sheet');	            
        poppage_segment = document.getElementById('midsizepoppage_segment');
        poppage_segment_loading=document.getElementById('poppage_segment_loading');
        	            
        poppage_sheet.innerHTML = result;

        poppage_segment_loading.style.display='none';
        
        setTimeout('showMidPopSegment()',600);        
        setTimeout('hideAnimSegment()',600); 
        setTimeout('lightboxInit()',1000);         
    }
    var failed = function() { alert('popIssuePost:Something went wrong'); }
	
    White.Web.UI.Client.Service.Issue.Render(postId,succeeded,failed);
}

function popNews(newsId,link) {

    if (link) {
        _currentPop_permalink = link.href;
        _currentPop_type = 'news';
    }

    var succeeded = function(result) {
        var poppage_sheet,poppage_segment,poppage_segment_loading; 
        var poppage_segment_anim = document.getElementById('poppage_segment_anim');
        var arrayPageScroll = getPageScroll();
        var arrayPageSize = getPageSize();
    
        activatePoppedPrintCss();
            
        poppage_segment_anim.style.width='10px';
        poppage_segment_anim.style.top='0px';
        poppage_segment_anim.style.left= '50%'
        poppage_segment_anim.style.height = '4000px'; 
         _prePopPageScrollY = arrayPageScroll[1];      
       
        new Effect.Parallel (
         [ 
            new Effect.Appear( poppage_segment_anim, { sync: true} ), 
            new Effect.ReSize( poppage_segment_anim, { sync: true, direction:'horiz', toSize:560, afterUpdate: centerPopPageAnim } )
         ]
         , { duration: 0.6 } 
        );  
       
        poppage_sheet = document.getElementById('midsizepoppage_sheet');	            
        poppage_segment = document.getElementById('midsizepoppage_segment');
        poppage_segment_loading=document.getElementById('poppage_segment_loading');
        	            
        poppage_sheet.innerHTML = result;

        poppage_segment_loading.style.display='none';
        
        setTimeout('showMidPopSegment()',600);        
        setTimeout('hideAnimSegment()',600); 
        setTimeout('lightboxInit()',1000);         
    }
    var failed = function() { alert('popNews:Something went wrong'); }
	
    White.Web.UI.Client.Service.Live.RenderNews(newsId,succeeded,failed);
}

function popDocumentation(documentionId,link) {

    if (link) {
        _currentPop_permalink = link.href;
        _currentPop_type = 'documentation';
    }

    var succeeded = function(result) {
        var poppage_sheet,poppage_segment,poppage_segment_loading; 
        var poppage_segment_anim = document.getElementById('poppage_segment_anim');
        var arrayPageScroll = getPageScroll();
        var arrayPageSize = getPageSize();
    
        activatePoppedPrintCss();
           
        poppage_segment_anim.style.width='10px';
        poppage_segment_anim.style.top='0px';
        poppage_segment_anim.style.left= '50%'
        poppage_segment_anim.style.height = '4000px'; 
         _prePopPageScrollY = arrayPageScroll[1];      
       
        new Effect.Parallel (
         [ 
            new Effect.Appear( poppage_segment_anim, { sync: true} ), 
            new Effect.ReSize( poppage_segment_anim, { sync: true, direction:'horiz', toSize:560, afterUpdate: centerPopPageAnim } )
         ]
         , { duration: 0.6 } 
        );  
       
        poppage_sheet = document.getElementById('midsizepoppage_sheet');	            
        poppage_segment = document.getElementById('midsizepoppage_segment');
        poppage_segment_loading=document.getElementById('poppage_segment_loading');
        	            
        poppage_sheet.innerHTML = result;

        poppage_segment_loading.style.display='none';
        
        setTimeout('showMidPopSegment()',600);        
        setTimeout('hideAnimSegment()',600); 
        setTimeout('lightboxInit()',1000);         
    }
    var failed = function() { alert('popNews:Something went wrong'); }
	
    White.Web.UI.Client.Service.Live.RenderDocumentation(documentionId,succeeded,failed);
}

function popEvent(eventId,link) {

    if (link) {
        _currentPop_permalink = link.href;
        _currentPop_type = 'event';
    }
    
    var succeeded = function(result) {
        var poppage_sheet,poppage_segment,poppage_segment_loading; 
        var poppage_segment_anim = document.getElementById('poppage_segment_anim');
        var arrayPageScroll = getPageScroll();
        var arrayPageSize = getPageSize();
    
        activatePoppedPrintCss();
            
        poppage_segment_anim.style.width='10px';
        poppage_segment_anim.style.top='0px';
        poppage_segment_anim.style.left= '50%'
        poppage_segment_anim.style.height = '4000px'; 
         _prePopPageScrollY = arrayPageScroll[1];      
       
        new Effect.Parallel (
         [ 
            new Effect.Appear( poppage_segment_anim, { sync: true} ), 
            new Effect.ReSize( poppage_segment_anim, { sync: true, direction:'horiz', toSize:560, afterUpdate: centerPopPageAnim } )
         ]
         , { duration: 0.6 } 
        );  
       
        poppage_sheet = document.getElementById('midsizepoppage_sheet');	            
        poppage_segment = document.getElementById('midsizepoppage_segment');
        poppage_segment_loading=document.getElementById('poppage_segment_loading');
        	            
        poppage_sheet.innerHTML = result;

        poppage_segment_loading.style.display='none';
        
        setTimeout('showMidPopSegment()',600);        
        setTimeout('hideAnimSegment()',600); 
        setTimeout('lightboxInit()',1000);         
    }
    var failed = function() { alert('popIssuePost:Something went wrong'); }
	
    White.Web.UI.Client.Service.Live.RenderEvent(eventId,succeeded,failed);
}


function showPopSegment() { 
    var poppage_segment = document.getElementById('poppage_segment');
    showPopFog();
    poppage_segment.style.display='';
}

function showMidPopSegment() { 
    var poppage_segment = document.getElementById('midsizepoppage_segment');
    showMidPopFog();
    poppage_segment.style.display='';
}

function hideAnimSegment() {
    var poppage_segment_anim = document.getElementById('poppage_segment_anim');
    poppage_segment_anim.style.display='none';
}
       
function showPopFog() {
    var popfog,  poppage, poppage_sheet, poppage_segment, poppage_segment_loading;
    var arrayPageScroll = getPageScroll();
    var arrayPageSize = getPageSize();
        
    popfog = document.getElementById('popfog');
    poppage = document.getElementById('poppage');
    poppage_segment = document.getElementById('poppage_segment');
    
    popfog.onclick = function() { if (!_hoverPopPage) { closePopFog(); } }
    poppage_segment.onclick = function() { if (!_hoverPopPage) {closePopFog(); } }
    
    poppage.onmouseover = function() { _hoverPopPage=true; }
    poppage.onmouseout = function() { _hoverPopPage=false; }
    
    popfog.style.width=arrayPageSize[0]+'px';
    popfog.style.height=(arrayPageSize[1]+arrayPageScroll[1])+'px';
    popfog.style.display='block';
          
    poppage_segment_loading = document.getElementById('poppage_segment_loading');	
    poppage_segment.style.display='none';
    poppage_segment_loading.style.display='';
    
    poppage_segment_loading.style.top = (arrayPageScroll[1]+15) +'px';
    poppage_segment.style.top = (arrayPageScroll[1]+15) +'px';
}

function showMidPopFog() {
    var popfog, poppage, poppage_sheet, poppage_segment, poppage_segment_loading;
    var arrayPageScroll = getPageScroll();
    var arrayPageSize = getPageSize();
        
    popfog = document.getElementById('popfog');
    poppage = document.getElementById('midsizepoppage');
    poppage_segment = document.getElementById('midsizepoppage_segment');
    
    popfog.onclick = function() { if (!_hoverPopPage) { closePopFog(); } }
    poppage_segment.onclick = function() { if (!_hoverPopPage) {closePopFog(); } }
    
    poppage.onmouseover = function() { _hoverPopPage=true; }
    poppage.onmouseout = function() { _hoverPopPage=false; }
    
    popfog.style.width=arrayPageSize[0]+'px';
    popfog.style.height=(arrayPageSize[1]+arrayPageScroll[1])+'px';
    popfog.style.display='block';
          
    poppage_segment_loading = document.getElementById('poppage_segment_loading');	
    poppage_segment.style.display='none';
    poppage_segment_loading.style.display='';
    
    poppage_segment_loading.style.top = (arrayPageScroll[1]+15) +'px';
    poppage_segment.style.top = (arrayPageScroll[1]+15) +'px';
}

function closePopFog() {
    
    var popfog,poppage_segment,poppage_sheet,midsizepoppage_segment,midsizepoppage_sheet;
    popfog = document.getElementById('popfog');
    
    poppage_segment = document.getElementById('poppage_segment');
    poppage_sheet = document.getElementById('poppage_sheet');
    
    midsizepoppage_segment = document.getElementById('midsizepoppage_segment');
    midsizepoppage_sheet = document.getElementById('midsizepoppage_sheet');
    
    poppage_segment.style.display='none';
    midsizepoppage_segment.style.display='none';
    
    popfog.style.display='none';
    
    new Effect.PageScroll( null, { scrollTo: _prePopPageScrollY, duration: 0.5, transition: Effect.Transitions.slowstop } );

    inactivatePoppedPrintCss();
    closeTipAFriend();
}

function lightbox_showFog() {
    var lightboxfog;
    var arrayPageScroll = getPageScroll();
    var arrayPageSize = getPageSize();

    lightboxfog = document.getElementById('lightboxfog');
    lightboxfog.style.width=arrayPageSize[0]+'px';
    lightboxfog.style.height=(arrayPageSize[1]+arrayPageScroll[1])+'px';
    
    lightboxfog.style.display='block';
}

function lightbox_hideFog() {
    var lightboxfog;
    lightboxfog = document.getElementById('lightboxfog');
    lightboxfog.style.display='none';
}

function lightboxInit() {
    myLightbox.updateImageList();
}

// script.aculo.us EffectResize.js

// Copyright(c) 2007 - Frost Innovation AS, http://ajaxwidgets.com
//
// EffectResize.js is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

// Modified by Elijah Lofgren to work with Prototype 1.4.0_rc3

/* 
    Helper Effect for resizing elements...
 */
 
Effect.ReSize = Class.create();
Object.extend(Object.extend(Effect.ReSize.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = element;
    if(!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ amount: 100, direction: 'vert', toSize:null }, arguments[1] || {});
    if( options.direction=='vert')
      this.originalSize = options.originalSize || parseInt(this.element.style.height);
    else
      this.originalSize = options.originalSize || parseInt(this.element.style.width);

    if( options.toSize != null ) {
        options.amount = options.toSize - this.originalSize;
        //console.log('amount: ' + options.amount);
    }
    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if(this.element.style.display=='none') { this.cancel(); return; }
  },
  update: function(position) {
    if( this.options.direction=='vert'){
      this.element.style.height = this.originalSize+(this.options.amount*position)+'px';
    } else {
      this.element.style.width = this.originalSize+(this.options.amount*position)+'px';
    }
  },
  finish: function(){
    if( this.options.direction=='vert'){
      this.element.style.height = this.originalSize+this.options.amount+'px';
    } else {
      this.element.style.width = this.originalSize+this.options.amount+'px';
    }
  }});

/* 
    Helper Effect for scrolling the page
*/
 
Effect.PageScroll = Class.create();
Object.extend(Object.extend(Effect.PageScroll.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = element;
    var options = Object.extend({ scrollTo: 0 }, arguments[1] || {});
    var arrayPageScroll = getPageScroll();
    
    options.startPosition = arrayPageScroll[1];
    this.start(options);
  },
  setup: function() {
    // nop
  },
  update: function(position) {
    var offset = this.options.startPosition-this.options.scrollTo;
    var newScrollPos = this.options.startPosition-(offset*position);
    window.scrollTo(0,newScrollPos);
  },
  finish: function(){
    window.scrollTo(0,this.options.scrollTo);
  }});