//DD Tab Menu- Script rewritten April 27th, 07: http://www.dynamicdrive.com
//**Updated Feb 23rd, 08): Adds ability for menu to revert back to default selected tab when mouse moves out of menu

//Only 2 configuration variables below:

var ddtabmenu={
	disabletablinks: false, //Disable hyperlinks in 1st level tabs with sub contents (true or false)?
	snap2original: [false, 300], //Should tab revert back to default selected when mouse moves out of menu? ([true/false, delay_millisec]

	currentpageurl: window.location.href.replace("http://"+window.location.hostname, "").replace(/^\//, ""), //get current page url (minus hostname, ie: http://www.dynamicdrive.com/)

definemenu:function(tabid, dselected){
	this[tabid+"-menuitems"]=null
	this[tabid+"-dselected"]=-1
	this.addEvent(window, function(){ddtabmenu.init(tabid, dselected)}, "load")
},

showsubmenu:function(tabid, targetitem){
	var menuitems=this[tabid+"-menuitems"]
	this.clearrevert2default(tabid)
 for (i=0; i<menuitems.length; i++){
		menuitems[i].className=""
		if (typeof menuitems[i].hasSubContent!="undefined")
			document.getElementById(menuitems[i].getAttribute("rel")).style.display="none"
	}
	targetitem.className="current"
	if (typeof targetitem.hasSubContent!="undefined")
		document.getElementById(targetitem.getAttribute("rel")).style.display="block"
},

isSelected:function(menuurl){
	var menuurl=menuurl.replace("http://"+menuurl.hostname, "").replace(/^\//, "")
	return (ddtabmenu.currentpageurl==menuurl)
},

isContained:function(m, e){
	var e=window.event || e
	var c=e.relatedTarget || ((e.type=="mouseover")? e.fromElement : e.toElement)
	while (c && c!=m)try {c=c.parentNode} catch(e){c=m}
	if (c==m)
		return true
	else
		return false
},

revert2default:function(outobj, tabid, e){
	if (!ddtabmenu.isContained(outobj, tabid, e)){
		window["hidetimer_"+tabid]=setTimeout(function(){
			ddtabmenu.showsubmenu(tabid, ddtabmenu[tabid+"-dselected"])
		}, ddtabmenu.snap2original[1])
	}
},

clearrevert2default:function(tabid){
 if (typeof window["hidetimer_"+tabid]!="undefined")
		clearTimeout(window["hidetimer_"+tabid])
},

addEvent:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
	var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
	if (target.addEventListener)
		target.addEventListener(tasktype, functionref, false)
	else if (target.attachEvent)
		target.attachEvent(tasktype, functionref)
},

init:function(tabid, dselected){
	var menuitems=document.getElementById(tabid).getElementsByTagName("a")
	this[tabid+"-menuitems"]=menuitems
	for (var x=0; x<menuitems.length; x++){
		if (menuitems[x].getAttribute("rel")){
			this[tabid+"-menuitems"][x].hasSubContent=true
			if (ddtabmenu.disabletablinks)
				menuitems[x].onclick=function(){return false}
			if (ddtabmenu.snap2original[0]==true){
				var submenu=document.getElementById(menuitems[x].getAttribute("rel"))
				menuitems[x].onmouseout=function(e){ddtabmenu.revert2default(submenu, tabid, e)}
				submenu.onmouseover=function(){ddtabmenu.clearrevert2default(tabid)}
				submenu.onmouseout=function(e){ddtabmenu.revert2default(this, tabid, e)}
			}
		}
		else //for items without a submenu, add onMouseout effect
			menuitems[x].onmouseout=function(e){this.className=""; if (ddtabmenu.snap2original[0]==true) ddtabmenu.revert2default(this, tabid, e)}
		menuitems[x].onmouseover=function(){ddtabmenu.showsubmenu(tabid, this)}
		if (dselected=="auto" && typeof setalready=="undefined" && this.isSelected(menuitems[x].href)){
			ddtabmenu.showsubmenu(tabid, menuitems[x])
			this[tabid+"-dselected"]=menuitems[x]
			var setalready=true
		}
		else if (parseInt(dselected)==x){
			ddtabmenu.showsubmenu(tabid, menuitems[x])
			this[tabid+"-dselected"]=menuitems[x]
		}
	}
}
}

function  getReplyImage(obj,contextpath) { 
   var randomid = getMeANewNumer(); 
   obj.captcha.src= contextpath+"/Captcha.jpg?id="+randomid; 
   
   
}

function getMeANewNumer() {
   var minutes = 1000*60
   var hours = minutes*60
   var days = hours*24
   var years = days*365
   var d = new Date()
   var t = d.getTime()
   return t;    
 }
 var securitycodemismatch = false;
 
 function getData(obj,contextpath,articleid)  {
     var addrec = "0";
     var username=obj.username.value;
     var subject =obj.subject.value; 
     var comments=obj.comments.value; 
     var securitycode=obj.securitycode.value; 
     if(username == '') {
	    alert("User Name is mandatory information");
	    obj.username.focus();
   	    addrec = "1";
	 }
     else if(subject == '') {
	    alert("Comment Subject is mandatory information");
	    obj.subject.focus();	    
   	    addrec = "1";
	 }
     else if(comments == '') {
	    alert("Comment cannot be left blank");
	    obj.comments.focus();	    
   	    addrec = "1";
	 }
     else if(securitycode == '') {
	    alert("Security code is mandatory");
	    obj.securitycode.focus();	    
   	    addrec = "1";
	 }
     else if(comments.length > 250 ) {
	    alert("Comments can be max 250 characters");
	    obj.comments.focus();    
   	    addrec = "1";
	 }

     if(addrec == "0") { 
     var email  = "guest@guest.com";
     var url = "aid="+articleid+"&commentTitle="+subject+"&commentDesc="+comments+"&authorName="+username+"&authorEmail="+email+"&image="+securitycode+"&endUserId=guest";
     new ajaxFunction(url,contextpath,obj);
 
     }
 }
 
 function getPollData(obj,contextpath,pollid)  {
     var addrec = "0";
     var name =obj.name.value;
     var comment =obj.comment.value; 

     var securitycode=obj.securitycode.value; 
     var email  = "guest@guest.com";
     
     if(name == '') {
	    alert("Please Enter User Name");
   	    obj.name.focus();
	    addrec = "1";
	 } else if(comment == '') {
	    alert("Comment cannot be left blank");
   	    obj.comment.focus();
	    addrec = "1";
	 } else if(securitycode == '') {
	    alert("Security code is mandatory");
   	    obj.securitycode.focus();
	    addrec = "1";
	 }
     else if(comment.length > 250 ) {
	    alert("Comments can be max 250 characters");
	    obj.comment.focus();    
   	    addrec = "1";
	 }	 

     if( addrec == "0") {
     	 var url = "pollid="+pollid+"&name="+name+"&comment="+comment+"&email="+email+"&image="+securitycode+"&endUserId=guest";
         new pollAjaxFunction(url,contextpath,obj);

     }
 }



function ajaxFunction(url,contextpath,obj)
	{
		var xmlHttp;
		try	{  
			// Firefox, Opera 8.0+, Safari  
			xmlHttp=new XMLHttpRequest();  
		}
		catch (e) {
			// Internet Explorer  
			try {    
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
			}
		    catch (e) { 
			   try   {      
				  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			   }
		       catch (e)   {      
				   alert("Your browser does not support AJAX!");      
				   return false;      
			   }    
	 	    }  
       } 

	  xmlHttp.onreadystatechange=function()  {
  	    if(xmlHttp.readyState==4)     	{
		     var str = xmlHttp.responseText;
		     var position = str.indexOf("false") 
		     if(position != -1) {
     		     securitycodemismatch = true;
		         alert("Security Code Mismatch")
                 var randomid = getMeANewNumer();
		         obj.captcha.src= contextpath+"/Captcha.jpg?id="+randomid;

	         } else {	          
	             alert("Comments Saved Successfully") 
	             securitycodemismatch = false;
				 obj.username.value="";
                 obj.subject.value=""; 
                 obj.comments.value=""; 
                 obj.securitycode.value=""; 
                 var randomid = getMeANewNumer();
		         obj.captcha.src= contextpath+"/Captcha.jpg?id="+randomid;
	             window.location.reload( false );		         

	         }
         }
      }
      var myurl = contextpath+"/components/naaptol/article/postCommentsStore.jsp?"+url;      
      xmlHttp.open("POST",myurl,true);
      xmlHttp.send(""); 
  }


function pollAjaxFunction(url,contextpath,obj)
	{
		var xmlHttp;
		try
		{  
			// Firefox, Opera 8.0+, Safari  
			xmlHttp=new XMLHttpRequest();  
		}
		catch (e)
	    {
			// Internet Explorer  
			try
	    	{    
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
			}
		    catch (e)
			{ 
			   try
			   {      
				  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			   }
		       catch (e)
		       {      
				   alert("Your browser does not support AJAX!");      
				   return false;      
			   }    
	 	    }  
       } 

	  xmlHttp.onreadystatechange=function()
	  {
  	    if(xmlHttp.readyState==4)
    	{
		     var str = xmlHttp.responseText;
		     var position = str.indexOf("false") 
		     if(position != -1) {
     		     securitycodemismatch = true;
		         alert("Security Code Mismatch")
                 var randomid = getMeANewNumer();
         	     obj.captcha.src= contextpath+"/Captcha.jpg?id="+randomid; 
	         } else {	          
	             alert("Comments Saved Successfully.") 
			     obj.name.value="";
			   	 obj.comment.value=""; 
		         obj.securitycode.value=""; 	             
                 var randomid = getMeANewNumer();
	             obj.captcha.src= contextpath+"/Captcha.jpg?id="+randomid; 	             
	             securitycodemismatch = false;
	             window.location.reload( false );	
	         }
         }
      }
      var myurl = contextpath+"/components/naaptol/pollresult/postPollComments.jsp?"+url;      
      xmlHttp.open("POST",myurl,true);
      xmlHttp.send(""); 
  }
  
  function forwardUrl(id,url,context)
  {
     new  forwardArticleAction(id,url,context);
  }
  
  function forwardArticleAction(id,url,context)
  {
		var xmlHttp;
		try
		{  
			// Firefox, Opera 8.0+, Safari  
			xmlHttp=new XMLHttpRequest();  
		}
		catch (e)
	    {
			// Internet Explorer  
			try
	    	{    
				xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");    
			}
		    catch (e)
			{ 
			   try
			   {      
				  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");      
			   }
		       catch (e)
		       {      
				   alert("Your browser does not support AJAX!");      
				   return false;      
			   }    
	 	    }  
       } 

	  xmlHttp.onreadystatechange=function()
	  {
  	    if(xmlHttp.readyState==4)
    	{
		     var str = xmlHttp.responseText;
		     window.location.href=url;
         }
      }
      var myurl = context+"/components/naaptol/article/updateCounter.jsp?id="+id;   
         
      xmlHttp.open("POST",myurl,true);
      xmlHttp.send(""); 
   }
 
