/*
	Javascript specific to Article Page Template
	Created By: Dmitriy Abragamov
	Date: 11/24/08
*/
if(window.location.href.indexOf('print')!=-1){addEvent(window, 'load', function(){
	var t = document.getElementById('additional_content'); 
	var t2 = document.getElementById('newsSection');
	if(t2)t2.parentNode.appendChild(t2);
	if(t)t.parentNode.appendChild(t);
	}, false);}
	
/*Cookie functions*/
function getCookie( name ) {
	var start = document.cookie.indexOf( name + "=" );
	var len = start + name.length + 1;
	if ( ( !start ) && ( name != document.cookie.substring( 0, name.length ) ) ) {
		return null;
	}
	if ( start == -1 ) return null;
	var end = document.cookie.indexOf( ';', len );
	if ( end == -1 ) end = document.cookie.length;
	return unescape( document.cookie.substring( len, end ) );
}

function setCookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60 * 24;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name+'='+escape( value ) +
		( ( expires ) ? ';expires='+expires_date.toGMTString() : '' ) + //expires.toGMTString()
		( ( path ) ? ';path=' + path : '' ) +
		( ( domain ) ? ';domain=' + domain : '' ) +
		( ( secure ) ? ';secure' : '' );
}
/***************/
function tableOfContent(ulRef){
		this.ulTop = (typeof(ulRef) == "string")?document.getElementById(ulRef):ulRef;
		var firstDrop = null;
		var dropsTotal = 0;
		for(var i=0; i<this.ulTop.childNodes.length; i++){
				if(this.ulTop.childNodes[i].nodeName == "LI"){
					var trigger = this.ulTop.childNodes[i];
					for(var j=0; j<trigger.childNodes.length; j++){
							if(trigger.childNodes[j].nodeName == "UL"){
									trigger.className = "collapsed";
									addEvent(trigger, 'click', function(e){
										(window.attachEvent)?t = e.srcElement:t = this;
										(t.className=='collapsed')?t.className='expanded':t.className='collapsed';}, false);
									targetEl = trigger.childNodes[j];
									toggleUlNode = new Toggler(trigger, targetEl);
									
									dropsTotal++;
									if(!firstDrop){
											firstDrop = toggleUlNode;
										}
									
									if(getCookie('aPointer') && getCookie('aPointer') == i){
												toggleUlNode.toggle.call(toggleUlNode.triggerEl);
												trigger.className = 'expanded';
												setCookie('aPointer', -1, 0);
												dropsTotal = 100;
										}
									
									var aItems = trigger.childNodes[j].getElementsByTagName('a');
									for(var z=0; z< aItems.length; z++){
											aItems[z].relatedUl = i;
											addEvent(aItems[z], 'click', 
											function(e){
												if (!e) var e = window.event;
												(window.attachEvent)?t = e.srcElement:t = this;
												
												setCookie('aPointer', t.relatedUl);
													
												e.cancelBubble = true;
												if (e.stopPropagation) e.stopPropagation();	
											},false);
										}
								}
						}
				}
			}
			
			if( dropsTotal >0 && dropsTotal <3){
					firstDrop.toggle.call(firstDrop.triggerEl);
					firstDrop.triggerEl.className = 'expanded';
				}
	}

function addEvent(obj, evnt, funcRef, captureBool){
				if(document.attachEvent){
						obj.attachEvent('on'+evnt, funcRef);
					}else{
							obj.addEventListener(evnt, funcRef, captureBool);
						}
		}
function createBind(obj, method, arg){
				return function(){
							var ar = arg || arguments;
								return method.call(obj, ar);
							}
			}
			var reqEmail = null;
function submitEmail(form){
						var urlCall = "/articles/article_email_thanks.jsp?email=" + form.emailAddress.value;
						if(reqEmail==null || typeof reqEmail == "undefined"){
							if (typeof XMLHttpRequest != "undefined") {
						       reqEmail = new XMLHttpRequest();
						   } else if (window.ActiveXObject) {
						       reqEmail = new ActiveXObject("Microsoft.XMLHTTP");
						       document.ie6 = true;
						   }
						}else{
								reqEmail.abort();
							}
						reqEmail.open("POST", urlCall, true);
						//reqEmail.setRequestHeader('User-Agent','XMLHTTP/1.0');
						reqEmail.setRequestHeader('Content-type','Text/xml');
					  reqEmail.onreadystatechange = function(){
					  		(document.ie6)?t = reqEmail:t = this;
									 if(t.readyState == 4) {
							        if (t.status == 200) {
							            var target = document.getElementById('emailSignup');
							            
							            if(document.getElementById('newsSubmit')){
							            	var newDiv = document.getElementById('newsSubmit');
							            	newDiv.innerHTML = "";
							            }else{
							            			var newDiv = document.createElement('div');
							            			newDiv.id = "newsSubmit";
							            		}
							            newDiv.innerHTML = t.responseText;
							            target.parentNode.appendChild(newDiv);
							            if(newDiv.innerHTML.indexOf('errorProcessing')==-1){
							            			target.parentNode.removeChild(target);
							            		}
							        }
							    }
							    return false
								};
					  reqEmail.send(null);	
						return false;
					}

//#####################input field dynamic help tip##################
/*Functionality added to the search box which displays an overlabel on top of the search input, 
		and hides it on focus making this form more accessible. In case if Javascript is disabled - input field has value="Search" by default*/
		function initSearchLabel(titleArg){
			if(!document.getElementById) return;
			
			var title = titleArg || null;
			
			var field, id;	
			/*look for all lables with overlabel class*/
			var labels = document.getElementsByTagName("label");
			for( var i=0; i<labels.length; i++){
				if(labels[i].className.indexOf("overLabel") != -1){
					/*get input field associated with label*/
					id = labels[i].htmlFor || labels[i].getAttribute('for');
			      	if (!id || !(field = document.getElementById(id))) {
			        	continue;
			      	} 
			      	/*apply css style to label(it's hidden by default)*/
			      	labels[i].className = 'overLabel-apply';
			      	if(title) labels[i].innerHTML = title;
			      	/*clear default value field of an input field*/
			      	if(field.value === 'Enter Email Address'){
			      		field.value = '';
			      	}
			      	/*do not display label if the search box is not empty*/
			      	if (field.value !== '') {
				        hideLabel(field.getAttribute('id'), true);
				      }
					/*on focus hide label*/
				    field.onfocus = function () {
				        hideLabel(this.getAttribute('id'), true);
				    };
				    /*display label on blur if input field is still empty*/
				    field.onblur = function (){
				    	 if (this.value === '') {
					          hideLabel(this.getAttribute('id'), false);
					        }
				    };
				    /*Safari workaround for the label not passing focus to input field*/
				    labels[i].onclick = function () {
				        var id, field;
				        id = this.getAttribute('for');
				        if (id && (field = document.getElementById(id))) {
				          field.focus();
				        }
				      };
				}
			}
		}
		/*Hides or shows label explicitly specified for the input field passed as a first parameter(id) 
		/*by setting or removing negative text indend.*/
		function hideLabel (field_id, hide) {
		  var field_for;
		  var labels = document.getElementsByTagName('label');
		  for (var i = 0; i < labels.length; i++) {
		    field_for = labels[i].htmlFor || labels[i].getAttribute('for');
		    if (field_for == field_id) {
		      labels[i].style.textIndent = (hide) ? '-10000em' : '0px';
		      return true;
		    }
		  }
		}
	
//###################################################################
//
		// Omniture tracking
		// Url click tracking function
		function trackClick(value){
			s.tl(this, 'o', value);
			return false;
		}



$(document).ready( function() { 
    $("a.cite-this").click( function(e) { 
        e.preventDefault();
        
        window.open($(this).attr("href"),"CiteThis","width=600,height=650,scrollbars=1");
        return false;
    });
});