// JavaScript Document
// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
//
// ************************
// layer utility routines *
// ************************

function getStyleObject(objectId) {
    // cross-browser function to get an object's style object given its id
    if(document.getElementById && document.getElementById(objectId)) {
	// W3C DOM
	return document.getElementById(objectId).style;
    } else if (document.all && document.all(objectId)) {
	// MSIE 4 DOM
	return document.all(objectId).style;
    } else if (document.layers && document.layers[objectId]) {
	// NN 4 DOM.. note: this won't find nested layers
	return document.layers[objectId];
    } else {
	return false;
    }
} // getStyleObject

function changeObjectVisibility(objectId, newVisibility) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.visibility = newVisibility;
	return true;
    } else {
	// we couldn't find the object, so we can't change its visibility
	return false;
    }
} // changeObjectVisibility

function moveObject(objectId, newXCoordinate, newYCoordinate) {
    // get a reference to the cross-browser style object and make sure the object exists
    var styleObject = getStyleObject(objectId);
    if(styleObject) {
	styleObject.left = newXCoordinate;
	styleObject.top = newYCoordinate;
	return true;
    } else {
	// we couldn't find the object, so we can't very well move it
	return false;
    }
} // moveObject



// Copyright © 2000 by Apple Computer, Inc., All Rights Reserved.
//
// You may incorporate this Apple sample code into your own code
// without restriction. This Apple sample code has been provided "AS IS"
// and the responsibility for its operation is yours. You may redistribute
// this code, but you are not permitted to redistribute it as
// "Apple sample code" after having made changes.
// ********************************
// application-specific functions *
// ********************************

// store variables to control where the popup will appear relative to the cursor position
// positive numbers are below and to the right of the cursor, negative numbers are above and to the left
var xOffset = 30;
var yOffset = -5;

function showPopup (targetObjectId, eventObj) {
    if(eventObj) {
	// hide any currently-visible popups
	hideCurrentPopup();
	// stop event from bubbling up any farther
	eventObj.cancelBubble = true;
	// move popup div to current cursor position 
	// (add scrollTop to account for scrolling for IE)
//	var newXCoordinate = (eventObj.pageX)?eventObj.pageX + xOffset:eventObj.x + xOffset + ((document.body.scrollLeft)?document.body.scrollLeft:0);
//	var newYCoordinate = (eventObj.pageY)?eventObj.pageY + yOffset:eventObj.y + yOffset + ((document.body.scrollTop)?document.body.scrollTop:0);
//	moveObject(targetObjectId, newXCoordinate, newYCoordinate);
	// and make it visible
	if( changeObjectVisibility(targetObjectId, 'visible') ) {
	    // if we successfully showed the popup
	    // store its Id on a globally-accessible object
	    window.currentlyVisiblePopup = targetObjectId;
	    return true;
	} else {
	    // we couldn't show the popup, boo hoo!
	    return false;
	}
    } else {
	// there was no event object, so we won't be able to position anything, so give up
	return false;
    }
} // showPopup

function hideCurrentPopup() {
    // note: we've stored the currently-visible popup on the global object window.currentlyVisiblePopup
    if(window.currentlyVisiblePopup) {
	changeObjectVisibility(window.currentlyVisiblePopup, 'hidden');
	window.currentlyVisiblePopup = false;
    }
} // hideCurrentPopup



// ***********************
// hacks and workarounds *
// ***********************

// initialize hacks whenever the page loads
window.onload = initializeHacks;

// setup an event handler to hide popups for generic clicks on the document
document.onclick = hideCurrentPopup;

function initializeHacks() {
    // this ugly little hack resizes a blank div to make sure you can click
    // anywhere in the window for Mac MSIE 5
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	window.onresize = explorerMacResizeFix;
    }
    resizeBlankDiv();
    // this next function creates a placeholder object for older browsers
    createFakeEventObj();
}

function createFakeEventObj() {
    // create a fake event object for older browsers to avoid errors in function call
    // when we need to pass the event object to functions
    if (!window.event) {
	window.event = false;
    }
} // createFakeEventObj

function resizeBlankDiv() {
    // resize blank placeholder div so IE 5 on mac will get all clicks in window
    if ((navigator.appVersion.indexOf('MSIE 5') != -1) 
	&& (navigator.platform.indexOf('Mac') != -1)
	&& getStyleObject('blankDiv')) {
	getStyleObject('blankDiv').width = document.body.clientWidth - 20;
	getStyleObject('blankDiv').height = document.body.clientHeight - 20;
    }
}

function explorerMacResizeFix () {
    location.reload(false);
}


function createRequestObject(){
	var request_o; //declare the variable to hold the object.
	var browser = navigator.appName; //find the browser name
	if(browser == "Microsoft Internet Explorer"){
		/* Create the object using MSIE's method */
	  request_o = new ActiveXObject("Microsoft.XMLHTTP");
	}
	else {
		/* Create the object using other browser's method */
	  request_o = new XMLHttpRequest();
	}
	return request_o; //return the object
}

var http = createRequestObject(); 

function buildQueryString(theFormName) {
  theForm = document.getElementById(theFormName);
  var qs = ''
  for (e=0;e<theForm.elements.length;e++) {
    if (theForm.elements[e].name!='') {

      if (theForm.elements[e].type == "radio" || theForm.elements[e].type == "checkbox"){
	if (theForm.elements[e].checked){
      qs+=(qs=='')?'':'&'
      qs+=theForm.elements[e].name+'='
	    +escape(theForm.elements[e].value)
	}
      }
      else {
      qs+=(qs=='')?'':'&'
      qs+=theForm.elements[e].name+'='
	    +escape(theForm.elements[e].value)
      }	
      }
    }
  return qs
}
var rssForm;
function sendData(formID){ //when calling this function, make sure you put as a parameter the formID
if (formID == null){
	formID = "form";
 }
 rssForm = formID;
/* 	alert("elem type is:"+document.f8.elem_type.value+" "+parentFrame.getElemType()+" "+parentFrame.test);
	return;*/
 // inside your form you must have the line <input type="hidden" name="page_id" value=112>
  http.open('post', 'index.php', true);
  http.onreadystatechange = handlePostData; //CHANGE THIS FUNCTION TO CHANGE TO multipart/form-data if a file is to be uploaded
  http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  http.send(buildQueryString(formID));   
//  alert(buildQueryString(formID));
}

 function handlePostData(){
   if(http.readyState == 4){ //Finished loading the response
     if (http.responseText.indexOf("ERROR") >= 0){
       alert(http.responseText + " " + http.responseText.indexOf("RROR"));
     }
     else {
	 //		alert(http.responseText);
		i = 0;
		j = 0;
		parse_text = http.responseText;
	 	document.getElementById("rss_data").innerHTML = "";
		while (parse_text.length > 0){
			i = parse_text.indexOf("<rss_id>"+8)+i;			
			id = parse_text.substring(i, parse_text.indexOf("</rss_id>"));
//			alert("rss_feed_id" + j);
			 document.getElementById("rss_feed_id"+j).value = id;
			 end = parse_text.indexOf("</rss_data>");
		 	 document.getElementById("rss_data").innerHTML += parse_text.substring(parse_text.indexOf("<rss_data>")+10, end);
			 parse_text = parse_text.substring(end + 11, parse_text.length);
		}
     }
    hideCurrentPopup();
   }
 }
