//***************************************************************************************************
// Script Version 1.0, 30.01.2003
// used by: kids-hotline
// includes frame independent functions 
//***************************************************************************************************


//***************************************************************************************************
// Initialize Frameset on first load
//***************************************************************************************************

var linked_frame = "";
var active_head_frame_layer = "";
var global_active_color_set;
var global_active_element;
var frameList = new Array();
var frameNameList = new Array();
OnLoadFunctions[OnLoadFunctions.length] = "initFrameset()";
window.onload = OnLoadExec;

function initFrameset() {
	//alert('parent.frames.length '+parent.frames.length);
	//alert('frames.length '+frames.length);
	if (parent.frames.length == 0) return;
	for (var i=0;i<parent.frames.length;i++) {
		frameList[parent.frames[i].name] = new MyframeElement(parent.frames[i]);
		frameNameList[i] = parent.frames[i].name;
	}
}


function MyframeElement(frame_el) {
	this.frameelement = frame_el;
	//alert(this.frameelement.name);
	//this.frame_active_color_set = this.frameelement.active_color_set;
	// this.linked_frame = this.frameelement.linked_frame; // disabled feature 
	
	// set Methods
	this.updatepages = organizePages;

	// content frame
	/*
	if (this.frameelement.name == 'content') {
		global_active_color_set = this.frame_active_color_set;
	} 
	*/
}

//***************************************************************************************************
// Frameset Methods
//***************************************************************************************************

function organizePages(color_set,linked_frame_id) {

	// get the active colorset  - is in every page-js defined	
	//alert(this.frameelement.name);
	switch (this.frameelement.name) {
		case"content":
			parent.document.title = this.frameelement.document.title; // testing...
		break;
		case"subnavigation": // FIXME!
			
			if((this.frameelement.navLoaded) && (this.frameelement.navLoaded == true)) { navLoaded = true;  }
			else { navLoaded = false; return; }			
			/*
			global_active_element = frameList['content'].frameelement.menu_id;
			if((this.frameelement.snapToElement) && (this.frameelement.allNavElements > 0)) { 
					this.frameelement.snapToElement(frameList['content'].frameelement.menu_id);
			}			
			subnavigation_path = '/subnavigation';
			section_sid = frameList['content'].frameelement.active_section;
			section_sid = frameList['content'].frameelement.active_section;
			this.frameelement.location.href = createUrl(subnavigation_path+'?submenu_id='+submenu_id+'&section_sid='+section_sid);
			
			
			if (this.frameelement.active_color_set != global_active_color_set && linked_frame_id != this.frameelement.myPageId) {
				var path = parent.content.linked_frame_path+"?color_suffix="+color_set;
				this.frameelement.location = createUrl(path);
			} else if (linked_frame_id != this.frameelement.myPageId) {
				var path = parent.content.linked_frame_path+"?color_suffix="+color_set;
				this.frameelement.location = createUrl(path);
			} else 
			*/
			// Color
			//alert(global_active_color_set);
			/*
			if (this.frameelement.active_color_set && this.frameelement.active_color_set != global_active_color_set) {
					parent.head.document.body.style.backgroundColor = headbackgroundColor[global_active_color_set];
					parent.head.active_color_set = global_active_color_set;
			}
			// Header Layer - Finish - for extra functions in head frame
			if(active_head_frame_layer.length > 0 && parent.head.document.getElementById(active_head_frame_layer) != active_head_frame_layer) parent.head.document.getElementById(active_head_frame_layer).style.display = 'none';
			if(parent.head.document.getElementById(linked_frame_id)) parent.head.document.getElementById(linked_frame_id).style.display = 'block';
			active_head_frame_layer = linked_frame_id;
			organizeHeadframe();
			*/
		break;
		case"navigation":
			if(preloadframes == true) return;
			if(!this.frameelement) return;
			if((this.frameelement.navLoaded) && (this.frameelement.navLoaded == true)) { navLoaded = true;  }
			else { navLoaded = false; return; }

			if(frameList['content'].frameelement.object_reload == 'nav') {
				var path = '/navigation';
				path += '?color_suffix='+frameList['content'].frameelement.active_color_set;
				path += '&active_element='+frameList['content'].frameelement.menu_id;
				parent.navigation.location.href = createUrl(path)			
			} else if (this.frameelement.object_login && this.frameelement.object_login != frameList['content'].frameelement.object_login) {
				var path = '/navigation';
				path += '?color_suffix='+frameList['content'].frameelement.active_color_set;
				path += '&active_element='+frameList['content'].frameelement.menu_id;
				parent.navigation.location.href = createUrl(path);
			} else {
				global_active_element = frameList['content'].frameelement.menu_id;
				if((this.frameelement.snapToElement) && (this.frameelement.allNavElements > 0)) { 
					this.frameelement.snapToElement(frameList['content'].frameelement.menu_id);
				}
			}

		//	if(this.frameelement.checkPrintVersion) this.frameelement.checkPrintVersion();
		//	if(this.frameelement.checkForum) this.frameelement.checkForum();
			
		break;
	}
}

function organizeHeadframe() {
	if(parent.head) { 
		// forum/thread limit 
		if(parent.head.setLimit && parent.content && parent.content.document.getElementById('alias_limit')) { 
			parent.head.setLimit(parent.content.document.getElementById('alias_limit').value);
			parent.head.setThreadLimit(parent.content.document.getElementById('alias_limit').value);
		}
		
		if(parent.head.setForumLink && parent.content && parent.content.document.getElementById('forum_sid')) { 
			parent.head.setForumLink(parent.content.document.getElementById('forum_sid').value);
		} else if(parent.head.setForumLink) parent.head.setForumLink('');
		
		if(parent.head.setAdvisoryboard && parent.content && parent.content.document.getElementById('_rel_advisory_board_sid')) { 
			parent.head.setAdvisoryboard(parent.content.document.getElementById('_rel_advisory_board_sid').value);
		} else if(parent.head.setAdvisoryboard) parent.head.setAdvisoryboard('');		
	
	} else return;
}


//***************************************************************************************************
// Frameset Generic Functions
//***************************************************************************************************
//OnLoadFunctions[OnLoadFunctions.length] = "PreloadFrames()";
preloadframes = false;
function PreloadFrames() {
	//alert(content);
	//alert(head);
	/*
	parent.navigation.donotInterruptSubmits();
	parent.head.donotInterruptSubmits();
	parent.content.donotInterruptSubmits();
	*/
	preloadframes = true;
	parent.head.location.href = createUrl(head_page);
	parent.content.location.href = createUrl(content_page);	
	parent.navigation.location.href = createUrl(navigation_page);
	preloadframes = false;
	//return true;
}


function organizeLoad(color_set,linked_frame_id) {
	
	organizeFrames();
	/*
	if (color_set.length == 0) global_active_color_set = frameList['content'].frameelement.active_color_set;
	else global_active_color_set = color_set;
	*/
	
	//if (linked_frame_id.length == 0) linked_frame_id = frameList['content'].frameelement.linked_frame_id;	
	for (var i=0;i<frameNameList.length;i++) {
		//alert(frameNameList[i]);
		frameList[frameNameList[i]].updatepages(global_active_color_set,linked_frame_id);
		//alert(frameList[frameNameList[i]]);
	}
	//alert(frameNameList.length);
}

function giveBodyFocus(frameName) {
	frame_el = frameList[frameName].frameelement;
	switch (SmartAgent){
		case "Netscape4":
		case "Netscape6":
		case "MSIE5":
		case "MSIE5.5":
		case "Opera5":
		default:
			frame_el.document.body.focus();
	}
}

//***************************************************************************************************
// Head-Content Exchange
//***************************************************************************************************

function submitContentForm(hiddenFieldName,hiddenFieldValue) {
	field_id = parent.content.document.getElementById(hiddenFieldName);
	field_id.value = hiddenFieldValue;
	parent.content.document.forms[0].submit();
	giveBodyFocus('content');
}


//***************************************************************************************************
// Utility Functions
//***************************************************************************************************

function createUrl(SessionUrl) {
	var urlString;
	var reg = '[&\?]PHPSESSID=[a-z0-9]{32}';
	var found = SessionUrl.match(reg);
	if(found) return SessionUrl;
	
	var reg = '[\?]';
	var found = SessionUrl.match(reg);
	if(found) wildcard = "&";
	else wildcard = "?";
	//SessionUrl.indexOf("?") > -1 ? wildcard = "&" : wildcard = "?"; 
	var urlString = wildcard + "PHPSESSID="+window.navigation.useSessionId;
	var urlString = SessionUrl+urlString;
	return urlString;
}

function organizeFrames() {
	if (parent.frames.length != 0) initFrameset();
}

var colorsuffix = new Array('blu','red','ora','gre');
var headbackgroundColor = new Array(colorsuffix);
	headbackgroundColor['blu']  = '#52a1cc';
	headbackgroundColor['red'] = '#e86b2f';
	headbackgroundColor['ora'] = '#ffaa00';
	headbackgroundColor['gre'] = '#59b300';


