// Japan-a-radio general function set 

var current_page;
var resize_elements = new Array();
var margin_bottom = 50; // used for full page resize 
var margin_top = 235;
var current_notice = "";

//
// sets the minimum height required to keep the page scrollability to a minimum
function set_min(value){	
	  $("main_layout").style.overflow = "scroll";	  
	  
	  // IE 6 comprimise
	  if (typeof document.body.style.maxHeight == "undefined")  {  
		$("main_layout").style.height = "100%";
	  }
	  
	  $("main_layout").style.minHeight =(value > -1)? value+"px" : ($("main_layout").scrollHeight)+"px";
	  
  	  // IE 6 comprimise
	  if (typeof document.body.style.maxHeight == "undefined")  {  
		$("main_layout").style.height =(value > -1)? value+"px" : ($("main_layout").scrollHeight)+"px";
	  }
	  
	  $("main_layout").style.overflow = "";	  
	  
	
	 
}
function delayed_set_min(){
	new PeriodicalExecuter(function(pe){ resize_registered();	pe.stop();}, 2);
}

// for loading external JS files that <script> import cant do
function loadjscssfile(filename, filetype){
	if (filetype=="js"){ //if filename is a external JavaScript file
		var fileref=document.createElement('script')
		fileref.setAttribute("type","text/javascript")
		fileref.setAttribute("src", filename)
	} else if (filetype=="css"){ //if filename is an external CSS file
		var fileref=document.createElement("link")
		fileref.setAttribute("rel", "stylesheet")
		fileref.setAttribute("type", "text/css")
		fileref.setAttribute("href", filename)
	}
	if (typeof fileref!="undefined") document.getElementsByTagName("head")[0].appendChild(fileref);
}

// drop down function
function dropdown_finish(obj){
	//alert($(obj.element.id).getStyle({"scroll"}) );
	$("login_content").setStyle({visibility:"hidden"});	
	$(obj.element.id).setStyle({ visibility : "hidden"}); 	
}

function dropddown_enable_content(obj){
	$("login_content").setStyle({visibility:"visible"});
}
function page_show_loader(){
	$('inner_page').update('<div class="loader" id="loader"><img src="images/loader_loop.gif"/>Loading...</div>');
}
/*
function checkloginstatus(transport){
	if (transport.responseText.lastIndexOf("<!--USER_LOGGED_IN->") > -1){
		$(logout).setStyle({visibility:"visible"});
	} else {
		$(logout).setStyle({visibility:"hidden"});		
	}
}
*/
function drop_down_login(){	
	var is_visible = $("login_panel").getStyle("visibility");				
	var toggle = (is_visible != "hidden")?true : false;
	if(toggle){	
	// close
		Effect.SlideUp('login_panel',{ afterFinish: dropdown_finish, duration : 0.4,queue: 'end'});
	} else {
	// open
		$("login_panel").style.zIndex = 9;
		$("tune_in_panel").style.zIndex = 8;
		if($("tune_in_panel").getStyle("visibility") != "hidden" ){
			Effect.SlideUp('tune_in_panel',{ afterFinish: tune_in_dropdown_finish, duration : 0.4,queue: 'end'});
		}
		var url = "main.php?pg=login";
		new Ajax.Updater('login_content', url,{method: 'get',evalScripts : true});	
		Effect.SlideDown('login_panel',{afterFinish: dropddown_enable_content, duration:0.4,queue: 'end'});			
		$("login_panel").setStyle({ visibility : "visible"}); 
	}
}
// drop down for tune in 
function tune_in_dropdown_finish(obj){
	//alert($(obj.element.id).getStyle({"scroll"}) );
	$("tune_in_panel").setStyle({visibility:"hidden"});	
	$(obj.element.id).setStyle({ visibility : "hidden"}); 
}

function tune_in_dropddown_enable_content(obj){
	$("tune_in_content").setStyle({visibility:"visible"});
}
function drop_down_tune_in(){	
	var is_visible = $("tune_in_panel").getStyle("visibility");				
	var toggle = (is_visible != "hidden")?true : false;
	if(toggle){	
	// close
		Effect.SlideUp('tune_in_panel',{ afterFinish: tune_in_dropdown_finish, duration : 0.4,queue: 'end'});
	} else {
	// open		
		if($("login_panel").getStyle("visibility") != "hidden" ){
			Effect.SlideUp('login_panel',{ afterFinish: dropdown_finish, duration : 0.4,queue: 'end'});
		}	
		$("tune_in_panel").style.zIndex = 9;
		$("login_panel").style.zIndex = 8;
		
		update_tune_in();		
		Effect.SlideDown('tune_in_panel',{afterFinish: tune_in_dropddown_enable_content, duration:0.4,queue: 'end'});			
		$("tune_in_panel").setStyle({ visibility : "visible"}); 
	}
}

function update_tune_in(){
	var url = "main.php?pg=tune_in";
	new Ajax.Updater('tune_in_content', url,{method: 'get',evalScripts : true});	
}
// use this to manually resize elements to fit there parent..
function register_for_resize(target){
	
	if(resize_elements.indexOf(target) == -1){
		resize_elements.push(target);
	}
	resize_registered();
	
}

function getElementsByName_iefix(tag, name) {
     
     var elem = document.getElementsByTagName(tag);
     var arr = new Array();
     for(i = 0,iarr = 0; i < elem.length; i++) {
          att = elem[i].getAttribute("name");
          if(att == name) {
               arr[iarr] = elem[i];
               iarr++;
          }
     }
     return arr;
}

function resize_registered(){
	var dimensions = document.viewport.getDimensions();
	var minarea = $("main_layout").getStyle("min-height");

	if(minarea.lastIndexOf("px")){
		minarea = minarea.substring(0,minarea.length-2);
	}
	if(minarea.lastIndexOf("%")){
		minarea = minarea.substring(0,minarea.length-1);		
	}
	var hh = Math.max(dimensions.height,minarea);
	for(var ii=0; ii < resize_elements.length; ii++){
		var result = document.getElementById(resize_elements[ii]);		
		try{
			result.setStyle({height:(hh-(margin_bottom+margin_top))+"px"});
		}catch(e){
			try{
				result.style.height = (hh-(margin_bottom+margin_top))+"px";
			}catch(ee){
				delete(resize_elements[ii]);			
			}
		}
		
	}
	
	$("main_layout").setStyle({'minHeight' : hh+"px"});	
	set_min();
}

// Functions for dealing with cookies.
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


function updater_success(){
	resize_registered();
}

function open_page(page,index){
	page_show_loader();
	switch(page){
		case "page":
			var url = "main.php?pg="+page+"&index="+index;	
			// also adjust the max height..
			var success = function(transport) {
				set_min(); 		
			}
			new Ajax.Updater('inner_page', url, {method: 'get',evalScripts : true, onComplete : success });
		break;
		case "other":
			//
			var url = index; 
			var success2 = function(transport) {
				set_min(); 		
			}
			new Ajax.Updater('inner_page', url, {method: 'get',evalScripts : true, onComplete : success2 });			
		break;
	}
}


// Custom SWFAddress and Ajax handling
function check_server_notice(transport){
	if(current_notice == transport.responseText) return false; // only update when new notice. this will prevent repeated popups even after the notice is closed
	current_notice = transport.responseText;
	if(current_notice == ""){
		$('bubble').setStyle({visibility:"hidden"});
		$('bubble_content').setStyle({visibility:"hidden"});
	} else {
		$('bubble').setStyle({visibility:"visible"});
		$('bubble_content').setStyle({visibility:"visible"});
	}
}

function hide_bubble(){
	$('bubble').setStyle({visibility:"hidden"});
	$('bubble_content').setStyle({visibility:"hidden"});	
}

function handleChange(event) {
    var index, rel, links = document.getElementsByTagName('a');
	
	current_page = event.value;
	
	var hash = current_page.split("/");
	if(hash[1] == "" || hash[1] == 'undefined'){
		// open home
		open_page("page","home");
	} else {
		var type = hash[1];
		hash.splice(0,2);
		var rest = hash.join("/");
		open_page(type,rest);
	}
	
}



// EVENT LISTENERS
	SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleChange);	

	window.onload = function() {
		var updater = new Ajax.PeriodicalUpdater('bubble_content', 'main.php?pg=system_notice', {
		  method: 'get', frequency: 3, decay: 2, onSuccess : check_server_notice
		});
		
		new Ajax.Updater('bubble_content', 'main.php?pg=system_notice', { method: 'get', onSuccess :check_server_notice	});
		set_min();
		Effect.SlideUp('login_panel',{ afterFinish: dropdown_finish, duration : 0.4,queue: 'end'});
		Effect.SlideUp('tune_in_panel',{ afterFinish: tune_in_dropdown_finish, duration : 0.4,queue: 'end'});
		
	};
	window.onresize = function(){
		resize_registered();
	}
