// -------------------------------------------------------------------
// Ajax XML Ticker (txt file source)
// Author: Dynamic Drive (http://www.dynamicdrive.com)
// -------------------------------------------------------------------

////////////No need to edit beyond here//////////////

function createAjaxObj(){
var httprequest=false
if (window.XMLHttpRequest){ // if Mozilla, Safari etc
httprequest=new XMLHttpRequest()
if (httprequest.overrideMimeType)
httprequest.overrideMimeType('text/xml')
}
else if (window.ActiveXObject){ // if IE
try {
httprequest=new ActiveXObject("Msxml2.XMLHTTP");
} 
catch (e){
try{
httprequest=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e){}
}
}
return httprequest
}


// -------------------------------------------------------------------
// Main Ajax Ticker Object function
// ajax_ticker(xmlfile, divId, divClass, delay, optionalfadeornot)
// -------------------------------------------------------------------

function ajax_ticker(xmlfile, divId, divClass, delay, fadeornot){
this.xmlfile=xmlfile //Variable pointing to the local ticker xml file (txt)
this.tickerid=divId //ID of ticker div to display information
this.delay=delay //Delay between msg change, in miliseconds.
this.mouseoverBol=0 //Boolean to indicate whether mouse is currently over ticker (and pause it if it is)
this.pointer=0
this.opacitystring=(typeof fadeornot!="undefined")? "width: 100%; filter:progid:DXImageTransform.Microsoft.alpha(opacity=100); -moz-opacity: 1" : ""
if (this.opacitystring!="") this.delay+=500 //add 1/2 sec to account for fade effect, if enabled
this.opacitysetting=0.2 //Opacity value when reset. Internal use.
this.messages=[] //Arrays to hold each message of ticker
this.ajaxobj=createAjaxObj()
document.write('<div id="'+divId+'" class="'+divClass+'"><div style="'+this.opacitystring+'">Initializing ticker...</div></div>')
this.getXMLfile()
}

// -------------------------------------------------------------------
// getXMLfile()- Use Ajax to fetch xml file (txt)
// -------------------------------------------------------------------

ajax_ticker.prototype.getXMLfile=function(){
if (this.ajaxobj){
var instanceOfTicker=this
var url=this.xmlfile+"?bustcache="+new Date().getTime()
this.ajaxobj.onreadystatechange=function(){instanceOfTicker.initialize()}
this.ajaxobj.open('GET', url, true)
this.ajaxobj.send(null)
}
}

// -------------------------------------------------------------------
// initialize()- Initialize ticker method.
// -Gets contents of xml file and parse it using JavaScript DOM methods 
// -------------------------------------------------------------------

ajax_ticker.prototype.initialize=function(){ 
if (this.ajaxobj.readyState == 4){ //if request of file completed
if (this.ajaxobj.status==200 || window.location.href.indexOf("http")==-1){ //if request was successful
this.contentdiv=document.getElementById(this.tickerid).firstChild //div of inner content that holds the messages
var xmldata=this.ajaxobj.responseText
this.contentdiv.style.display="none"
this.contentdiv.innerHTML=xmldata
if (this.contentdiv.getElementsByTagName("div").length==0){ //if no messages were found
this.contentdiv.innerHTML="<b>Error</b> fetching remote ticker file!"
return
}
var instanceOfTicker=this
document.getElementById(this.tickerid).onmouseover=function(){instanceOfTicker.mouseoverBol=1}
document.getElementById(this.tickerid).onmouseout=function(){instanceOfTicker.mouseoverBol=0}
if (window.attachEvent) //Clean up loose references in IE
window.attachEvent("onunload", function(){instanceOfTicker.contentdiv=instanceOfTicker.ajaxobj=null})
//Cycle through XML object and store each message inside array
for (var i=0; i<this.contentdiv.getElementsByTagName("div").length; i++){
if (this.contentdiv.getElementsByTagName("div")[i].className=="message")
this.messages[this.messages.length]=this.contentdiv.getElementsByTagName("div")[i].innerHTML
}
this.contentdiv.innerHTML=""
this.contentdiv.style.display="block"
this.rotatemsg()
}
}
}

// -------------------------------------------------------------------
// rotatemsg()- Rotate through ticker messages and displays them
// -------------------------------------------------------------------

ajax_ticker.prototype.rotatemsg=function(){
var instanceOfTicker=this
if (this.mouseoverBol==1) //if mouse is currently over ticker, do nothing (pause it)
setTimeout(function(){instanceOfTicker.rotatemsg()}, 100)
else{ //else, construct item, show and rotate it!
this.fadetransition("reset") //FADE EFFECT- RESET OPACITY
this.contentdiv.innerHTML=this.messages[this.pointer]
this.fadetimer1=setInterval(function(){instanceOfTicker.fadetransition('up', 'fadetimer1')}, 100) //FADE EFFECT- PLAY IT
this.pointer=(this.pointer<this.messages.length-1)? this.pointer+1 : 0
setTimeout(function(){instanceOfTicker.rotatemsg()}, this.delay) //update container periodically
}
}

// -------------------------------------------------------------------
// fadetransition()- cross browser fade method for IE5.5+ and Mozilla/Firefox
// -------------------------------------------------------------------

ajax_ticker.prototype.fadetransition=function(fadetype, timerid){
var contentdiv=this.contentdiv
if (fadetype=="reset")
this.opacitysetting=0.2
if (contentdiv.filters && contentdiv.filters[0]){
if (typeof contentdiv.filters[0].opacity=="number") //IE6+
contentdiv.filters[0].opacity=this.opacitysetting*100
else //IE 5.5
contentdiv.style.filter="alpha(opacity="+this.opacitysetting*100+")"
}
else if (typeof contentdiv.style.MozOpacity!="undefined" && this.opacitystring!=""){
contentdiv.style.MozOpacity=this.opacitysetting
}
else
this.opacitysetting=1
if (fadetype=="up")
this.opacitysetting+=0.1
if (fadetype=="up" && this.opacitysetting>=1)
clearInterval(this[timerid])
}

//////////////////////////////End of ajax_ticker

function setTab(area,id) {
	var tabArea=document.getElementById(area);

	var contents=tabArea.childNodes;
	for(i=0; i<contents.length; i++) {
		if(contents[i].className=='domain_number_search_tab_content'){contents[i].style.display='none';}
	}
	document.getElementById(id).style.display='';
	//2009-8-5
	if(id=='phnum' && document.getElementById('phnum').innerHTML=='' )
	{
		//use ajax to display the product tabs
		document.getElementById(id).innerHTML='<center><table border="0" cellpadding="0" cellspacing="1" class="domain_statistics"><tr align="center"><td><br/><br/><img src="media/img/loading_bar_02.gif"/></td></tr></table></center>';
		var oXHR = zXmlHttp.createRequest();
		oXHR.open("get","include/classes/phnum_tab.php", true);
		oXHR.onreadystatechange = function () {
	    	if (oXHR.readyState == 4) {
	    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
					displayInnerHTML(id,oXHR.responseText);
	            } 
				else {
	            	displayInnerHTML(id,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
	            }
	         }            
	    }
	    oXHR.send(null);
		
	}else if(id=='idns' && document.getElementById('idns').innerHTML=='' )
	{
		//use ajax to display the product tabs
		document.getElementById(id).innerHTML='<center><table border="0" cellpadding="0" cellspacing="1" class="domain_statistics"><tr align="center"><td><br/><br/><img src="media/img/loading_bar_02.gif"/></td></tr></table></center>';
		var oXHR = zXmlHttp.createRequest();
		oXHR.open("get","include/classes/idns_tab.php", true);
		oXHR.onreadystatechange = function () {
	    	if (oXHR.readyState == 4) {
	    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
					displayInnerHTML(id,oXHR.responseText);
	            } 
				else {
	            	displayInnerHTML(id,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
	            }
	         }            
	    }
	    oXHR.send(null);
		
	}

	var tabs=document.getElementById(area+'tabs').getElementsByTagName('a');
	for(i=0; i<tabs.length; i++) { tabs[i].className='domain_number_search_tab'; }
	document.getElementById(id+'tab').className='domain_number_search_tab domain_number_search_tab_current';
	document.getElementById(id+'tab').blur();
}

function setTabTitle(id,content) {
	document.getElementById(id).innerHTML=content;
}

function set_domain_tab(area,id) {
	var tabArea=document.getElementById(area);

	var contents=tabArea.childNodes;
	for(i=0; i<contents.length; i++) {
		if(contents[i].className=='domain_registry_content_table'){contents[i].style.display='none';}
	}
	document.getElementById(id).style.display='';

	var tabs=document.getElementById(area+'_tabs').getElementsByTagName('a');
	for(i=0; i<tabs.length; i++) { tabs[i].className='domain_switch_tab'; }
	document.getElementById(id+'_tab').className='domain_switch_tab domain_switch_tab_current';
	document.getElementById(id+'_tab').blur();
}

///////////////////////////////////
function showPopDiv(pop_text,bgColor){
	if(!document.all){
		document.captureEvents(Event.MOUSEMOVE);
	}
	
	document.getElementById("div_popup_domain").innerHTML = pop_text;
	document.getElementById("div_popup_domain").style.backgroundColor = bgColor;
	document.onmousemove = mouseMove;
}

function mouseMove(e){
	var x,y;
	if(!document.all){

		x=e.pageX; 
		y=e.pageY;
	}//{!document.all} for mozilla
	else{
		x=document.documentElement.scrollLeft+event.clientX;
		y=document.documentElement.scrollTop+event.clientY; 
	}

    document.getElementById("div_popup_domain").style.display="block";
    document.getElementById("div_popup_domain").style.left=x + 20 + "px";
    document.getElementById("div_popup_domain").style.top=y - 10 +"px";
}

function mouse_move_out(){
	if(!document.all){
		document.captureEvents(Event.MOUSEMOVE);
	}
	document.onmousemove = mouseOut;
}

function mouseOut(e){
document.getElementById("div_popup_domain").style.display="none";
}

////////////////////////////////////
//////////////////////////////////////
Array.prototype.remove=function(dx)
  {
    if(isNaN(dx)||dx>this.length){return false;}
    for(var i=0,n=0;i<this.length;i++)
    {
        if(this[i]!=this[dx])
        {
            this[n++]=this[i]
        }
    }
    this.length-=1
  }
///////////////////////////////////Global
var aDomain = new Array();
///////////////////////////////////////
function selectDomain(oCheckbox){
	
	divText = '';
	
	if (oCheckbox.checked == true){
		
		for (var i=0;i<aDomain.length;i++){
			if (aDomain[i]==oCheckbox.value){
				aDomain.remove(i);
				break;
				}
			} 
			aDomain.push(oCheckbox.value);
	}
	else if (oCheckbox.checked == false){
		
		for (var i=0;i<aDomain.length;i++) 
		{ 	
			if(aDomain[i]==oCheckbox.value){
				break;
			}
		}
		
		aDomain.remove(i);
	}
	for (var i=0;i<aDomain.length;i++) 
		{ 	
			divText += '|' + aDomain[i];
		}
		//document.getElementById("div_selected_domains").innerHTML = (i>0?'Domains: ':'') + divText;
		document.getElementById("hidden_domains").value = divText;
}


function displayInnerHTML(sDiv,txtForm){
	document.getElementById(sDiv).innerHTML = txtForm;

}

function makeRequest(url) {
	var jsPath = url + ".js";
    var oScript = document.createElement("script");
    oScript.src = jsPath;
    document.body.appendChild(oScript);
	
}

function hidden_display(ID,display)
{
	if (display)
		document.getElementById(ID).style.display="block";
	else
		document.getElementById(ID).style.display="none";
}

function getRequestBody(oForm) {
        
            //array to hold the params
            var aParams = new Array();
            
            //get your reference to the form
            //var oForm = document.forms[0];
            
            //iterate over each element in the form
            for (var i=0 ; i < oForm.elements.length; i++) {
            
                //get reference to the field
                var oField = oForm.elements[i];
                
                //different behavior based on the type of field
                switch (oField.type) {
                
                    //buttons - we don't care
                    case "button":
                    case "submit":
                    case "reset":
                             break;
                    
                    //checkboxes/radio buttons - only return the value if the control is checked.
                    case "checkbox":
                    case "radio":
                        if (!oField.checked) {
                            break;
                        } //End: if
                    
                    //text/hidden/password all return the value
                    case "text":
                    case "hidden":
                    case "password":
                        aParams.push(encodeNameAndValue(oField.name, oField.value));			
                        break;
                    
                    //everything else
                    default:
                    
                        switch(oField.tagName.toLowerCase()) {
                            case "select":
                                aParams.push(encodeNameAndValue(oField.name, oField.options[oField.selectedIndex].value));
                                break;
                            default:	
                                aParams.push(encodeNameAndValue(oField.name, oField.value));
                        }
                }							
            
            }
        
            return aParams.join("&");
        }
	
function encodeNameAndValue(sName, sValue) {
            var sParam = encodeURIComponent(sName);
            sParam += "=";
            sParam += encodeURIComponent(sValue);
            return sParam;				
}
/*
 * 11-12-2008    tick/untick  all the phnum checkbox in index.php
 */
function tick_all_phnum()
{
	if(document.getElementById('ch_all_phnum').checked) 
	{
		for( var i = 0; i < document.getElementsByName('ch_phnum[]').length; i++ ) 
		{
  			document.getElementsByName('ch_phnum[]')[i].checked = true;
		}
    }
    else
    {
     	for( var i = 0; i < document.getElementsByName('ch_phnum[]').length; i++ ) 
  		{
  				document.getElementsByName('ch_phnum[]')[i].checked = false;
  		}
    }
}	
function choose_phnum()
{
	for( var i = 0; i < document.getElementsByName('ch_phnum[]').length; i++ ) 
		{
  			if (document.getElementsByName('ch_phnum[]')[i].checked)
  			   return true;
		}
  return false;
}
/***********17-07-2008**************
* when tick one region then tick all the tld checkboxs in this region
*/
function tick_all_tld(which_region,which_tlds)
{
	if(document.getElementById(which_region).checked) 
	{
		for( var i = 0; i < document.getElementsByName(which_tlds).length; i++ ) 
		{
  			document.getElementsByName(which_tlds)[i].checked = true;
		}
    }
    else
    {
     	for( var i = 0; i < document.getElementsByName(which_tlds).length; i++ ) 
		{
  			document.getElementsByName(which_tlds)[i].checked = false;
		}
		//document.getElementById('regions_all').checked=false;	
    }
}	
/*
 * 03-12-2008 tick/untick all tlds of every region
 */
 function tick_all(check_all)
 {
 	 if(document.getElementById(check_all).checked)
 	 {
 	 	document.getElementById('regions_europe').checked=true;
 	 	document.getElementById('regions_asia').checked=true;
 	 	document.getElementById('regions_america').checked=true;
 	 	document.getElementById('regions_africa').checked=true;
 	 	document.getElementById('regions_generic').checked=true;
 	 }
 	 else
 	 {
 	 	 	document.getElementById('regions_europe').checked=false;
	 	 	document.getElementById('regions_asia').checked=false;
	 	 	document.getElementById('regions_america').checked=false;
	 	 	document.getElementById('regions_africa').checked=false;
	 	 	document.getElementById('regions_generic').checked=false;
 	 }
 	 tick_all_tld('regions_europe','domains_europe');
 	 tick_all_tld('regions_asia','domains_asia');
 	 tick_all_tld('regions_america','domains_america');
 	 tick_all_tld('regions_africa','domains_africa');
 	 tick_all_tld('regions_generic','domains_generic');
 }
/***********04-08-2008**************
* when create domain, need tick at least one tld.
*/
function create_single(){   
   
   var tlds="";
    //popular   20-2-2009 add the popular domain tab
   for(var i=0;i<document.getElementsByName("domains_popular").length;i++)
   {
     if(document.getElementsByName("domains_popular")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_popular")[i].value;
     }
   } 
   //asia
   for(var i=0;i<document.getElementsByName("domains_asia").length;i++)
   {
     if(document.getElementsByName("domains_asia")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_asia")[i].value;
     }
   } 
   //europe 
   for(var i=0;i<document.getElementsByName("domains_europe").length;i++)
   {
     if(document.getElementsByName("domains_europe")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_europe")[i].value;
     }
   }
   //america
   for(var i=0;i<document.getElementsByName("domains_america").length;i++)
   {
     if(document.getElementsByName("domains_america")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_america")[i].value;
     }
   }
	//africa
   for(var i=0;i<document.getElementsByName("domains_africa").length;i++)
   {
     if(document.getElementsByName("domains_africa")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_africa")[i].value;
     }
   }
   //generic
   for(var i=0;i<document.getElementsByName("domains_generic").length;i++)
   {
     if(document.getElementsByName("domains_generic")[i].checked==true)
     {
        tlds+="|"+document.getElementsByName("domains_generic")[i].value;
     }
   }

	if(document.getElementById('enterdomain').value=='' || document.getElementById('enterdomain').value=='Enter your domain here'){
		alert ("Please input domain name!!");
		return false;
   }
   	
   if(tlds=="" && (document.getElementById('enterdomain').value.indexOf('.')==-1))
   {
      alert ("Please choose at least one tld ! ");
      return false;
   }
   
   document.getElementById("hidden_domains").value=tlds;
   document.form_domain_check.submit();
}
function create_idns_single(){   
   var tlds="";
   if(document.getElementById('input_idns_domain_name').value=='' || document.getElementById('input_idns_domain_name').value=='Enter your domain here'){
		alert ("Please input domain name!!");
		return false;
   }
   for(var i=0;i<document.getElementsByName("ch_idns[]").length;i++){
   	 if(document.getElementsByName("ch_idns[]")[i].checked==true)
     {
       document.form_idns_check.submit();
       return true; 
     }
   }

   alert('Please choose at least one tld ! ');
   return false;
}
/***********04-08-2008**************
* when create domain, need tick at least one tld.
*/
function create_allcountry(){   
   
    var tlds="";
   
    for(var i=0;i<document.getElementsByName("domains[]").length;i++)
   {
     if(document.getElementsByName("domains[]")[i].checked==true)
     {
         tlds+="|"+document.getElementsByName("domains[]")[i].value;
     }
   } 
   
   if(tlds=="")
   {
      alert ("Please choose at least one tld ! ");
      return false;
   }
   
   document.getElementById("hidden_domains").value=tlds;
   document.form_domain_check.submit();
}
/**********23-08-2008 get the price domain tab which in the sidebar.php****************************************/
function setDomainPriceTab(area,id,curr) {
	var tabArea=document.getElementById(area);
	var contents=tabArea.childNodes;
	for(i=0; i<contents.length; i++) {
		if(contents[i].className=='search_panel'){contents[i].style.display='none';}
	}
	var tabs=document.getElementById(area+'tabs').getElementsByTagName('a');
	for(i=0; i<tabs.length; i++) { tabs[i].className='region_search_tab'; }
	document.getElementById(id).style.display='block';
	document.getElementById(id+'_tab').className='region_search_tab domain_number_search_tab_current';
	document.getElementById(id+'_tab').blur();
	
	//use ajax to display the country and price
	if(document.getElementById(id).innerHTML=='')
	{
		document.getElementById(id).innerHTML=' <div id="display_t"><table border="0" cellpadding="0" cellspacing="1" class="domain_statistics"><tr align="center"><td><br/><br/><img src="media/img/loading_bar_02.gif"/></td></tr></table></div>';
		var oXHR = zXmlHttp.createRequest();
		oXHR.open("get","/include/ajax/display_region_price.php?region="+id+"&which_curr="+curr, true);
		oXHR.onreadystatechange = function () {
	    	if (oXHR.readyState == 4) {
	    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
					displayInnerHTML(id,oXHR.responseText);
	            } 
				else {
	            	displayInnerHTML(id,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
	            }
	         }            
	    }
	    oXHR.send(null);
	}

}

/**********************2008-10-02 user use getPassword to retrieve his password************************************/

function getPassword(username,SERVER_PATH,div_name)
{
	document.getElementById(div_name).innerHTML='<table style="width:200px"><tr><td  style="margin-left:50px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="'+SERVER_PATH+'/media/img/loading_bar_02.gif"/></td></tr><tr><td><b>Please wait  while processing...</b></td></tr></table>';
	
	var oXHR = zXmlHttp.createRequest();
	oXHR.open("get", SERVER_PATH+"/include/ajax/retrieve_password.php?username="+username, true);
	oXHR.onreadystatechange = function () {
    	if (oXHR.readyState == 4) {
    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
				displayInnerHTML(div_name,oXHR.responseText);
            } 
			else {
            	displayInnerHTML(div_name,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
            }
         }            
    }
    oXHR.send(null);
}


/*******************************2008-10-08*resetPassword*******************************/
function changePassword(username,password,key,SERVER_PATH,div_name)
{
	document.getElementById(div_name).innerHTML='<table style="width:200px"><tr><td  style="margin-left:50px;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="'+SERVER_PATH+'/media/img/loading_bar_02.gif"/></td></tr><tr><td><b>Please wait  while processing...</b></td></tr></table>';
	var oXHR = zXmlHttp.createRequest();
	oXHR.open("get", SERVER_PATH+"/include/ajax/reset_password.php?username="+username+"&password="+password+"&key="+key, true);
	oXHR.onreadystatechange = function () {
    	if (oXHR.readyState == 4) {
    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
				displayInnerHTML(div_name,oXHR.responseText);
            } 
			else {
            	displayInnerHTML(div_name,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
            }
         }            
    }
    oXHR.send(null);
}

function checkalldomains(statusofelement,checkelementsbyname){
	statusofElemetent=document.getElementById(statusofelement).checked;
	
	for( var i = 0; i < document.getElementsByName(checkelementsbyname).length; i++ ) 
	{
 			document.getElementsByName(checkelementsbyname)[i].checked = statusofElemetent;
	}
	if(!statusofElemetent)
	  document.getElementById('div_confirm_display').style.display='none';
	else
	  display_confirm_area(checkelementsbyname);
}

//2008-12-29 when there are domains then display the authimg and the confirm button
function display_confirm_area()
{
	var j=0;
	for( var i = 0; i < document.getElementsByName('item_id[]').length; i++ ) 
	{
		if (document.getElementsByName('item_id[]')[i].checked) {
			j++;
			break;
		}
	}
    if(j>0)
	    document.getElementById('div_confirm_display').style.display='block';
    else
	{
		document.getElementById('div_confirm_display').style.display='none';
		document.getElementById('checkall').checked=false;
	}     
}

function load_product(id,countryName)
{
	//use ajax to display the product tabs
	//document.getElementById(id).innerHTML=' <center><table border="0" cellpadding="0" cellspacing="1" class="domain_statistics"><tr align="center"><td><br/><br/><img src="media/img/loading_bar_02.gif"/></td></tr></table></center>';
	var oXHR = zXmlHttp.createRequest();
	oXHR.open("get","include/ajax/load_product.php?countryName="+countryName, true);
	oXHR.onreadystatechange = function () {
    	if (oXHR.readyState == 4) {
    		if (oXHR.status == 200 || oXHR.status == 304 || oXHR.status == 0) {
				displayInnerHTML(id,oXHR.responseText);
            } 
			else {
            	displayInnerHTML(id,"An error occurred: " + oXHR.statusText); //statusText is not always accurate
            }
         }            
    }
    oXHR.send(null);
}
