//identify browser
var isNS4 = (document.layers) ? true : false;
var isIE4 = (document.all && !document.getElementById) ? true : false;
var isIE5 = (document.all && document.getElementById) ? true : false;
var isNS6 = (!document.all && document.getElementById) ? true : false;

var secureProtocol = document.location.href.substr(0, document.location.href.indexOf(":"));
var replaceUrl = ""
if (window.IsSecure) {
	//alert(IsSecure + "," + secureProtocol);	
	if (secureProtocol == "http") {
		replaceUrl = "https" + document.location.href.substr(document.location.href.indexOf(":"), document.location.href.length);
		document.location.replace(replaceUrl);
	}
} else {
	if (secureProtocol == "https") {
		replaceUrl = "http" + document.location.href.substr(document.location.href.indexOf(":"), document.location.href.length);
		document.location.replace(replaceUrl);
	}
}
	
	//alert("secureProtocol:" + secureProtocol + ", " + "replaceUrl: " + replaceUrl)

//This generic function will return the value of a QueryString
function getQueryString(Val) {
	thisURLparamStr = document.location.search;
	//chop "?" off thisURLparamStr
	if (thisURLparamStr.charAt(0) == "?") thisURLparamStr = thisURLparamStr.substring(1, thisURLparamStr.length);
	returnStr = "";
	if (thisURLparamStr != "") {
		//Build array out of thisURLparamStr using "&" as delimiter
		divide1=(thisURLparamStr.split("&"))
		for (i=0; i < divide1.length; i++) {
			divide2 = divide1[i].split("=")
			if (unescape(divide2[0]) == Val) {
				//returnStr = unescape(divide2[1]);
				returnStr = decodeURIComponent(divide2[1]);
				
			}
		}
	}
	return returnStr;
}

//Get cookie routine by Shelley Powers 
function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

function addPageEvent(elm, evType, fn, useCapture) {
	if (elm.addEventListener) {
		elm.addEventListener(evType, fn, useCapture);
		return true;
	} else if (elm.attachEvent) {
		var r = elm.attachEvent("on"+evType, fn);
		return r;
	} else {
		//alert("Handler could not be removed");
	}
} 

//***********************
function divDisplayOn(divID) {

	if (isIE4) {
		elm = document.all[divID];
		elm.style.display = "block";

	} else if (isIE5 || isNS6) {
		elm = document.getElementById(divID);
		elm.style.display = "block";
	}
}


function divDisplayOff(divID) {

	if (isIE4) {
		elm = document.all[divID];
		elm.style.display = "none";

	} else if (isIE5 || isNS6) {
		elm = document.getElementById(divID);
		elm.style.display = "none";
	}
}

//********************************

function addOptions(fromMenu, toMenu) {

	//fromMenu = document.forms.UserProfile.AvailablePrivs;
	//toMenu = document.forms.UserProfile.FUNCTIONS;
	fromMenuArray = new Array();
	toMenuArray = new Array();
	for (i=0; i<fromMenu.options.length; i++) {
		if (fromMenu.options[i].selected == true) {
			//toMenuArray[toMenuArray.length] = new Array(fromMenu.options[i].value, fromMenu.options[i].text);
			toMenu.options[toMenu.options.length] = new Option(fromMenu.options[i].text, fromMenu.options[i].value, false, false);
		} else {
			fromMenuArray[fromMenuArray.length] = new Array(fromMenu.options[i].value, fromMenu.options[i].text);
		}
	}
	populateSelect(fromMenu, fromMenuArray);

}

function removeOptions(fromMenu, toMenu) {

	//fromMenu = document.forms.UserProfile.FUNCTIONS;
	//toMenu = document.forms.UserProfile.AvailablePrivs;
	fromMenuArray = new Array();
	toMenuArray = new Array();
	for (i=0; i<fromMenu.options.length; i++) {
		if (fromMenu.options[i].selected == true) {
			//toMenuArray[toMenuArray.length] = new Array(fromMenu.options[i].value, fromMenu.options[i].text);
			toMenu.options[toMenu.options.length] = new Option(fromMenu.options[i].text, fromMenu.options[i].value, false, false);
		} else {
			fromMenuArray[fromMenuArray.length] = new Array(fromMenu.options[i].value, fromMenu.options[i].text);
		}
	}
	populateSelect(fromMenu, fromMenuArray);

}



// ***********************
// BEGIN POSITIONING STUFF
// ***********************

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 GetElementLeft(eElement)
{
   if (!eElement && this)                    // if argument is invalid
   {                                         // (not specified, is null or is 0)
      eElement = this;                       // and function is a method
   }                                         // identify the element as the method owner

   var DL_bIE = document.all ? true : false; // initialize var to identify IE

   var nLeftPos = eElement.offsetLeft;       // initialize var to store calculations
   var eParElement = eElement.offsetParent;  // identify first offset parent element

   while (eParElement != null)
   {                                         // move up through element hierarchy

      if(DL_bIE)                             // if browser is IE, then...
      {
         if( (eParElement.tagName != "TABLE") && (eParElement.tagName != "BODY") )
         {                                   // if parent is not a table or the body, then...
            nLeftPos += eParElement.clientLeft; // append cell border width to calcs
         }
      }
      else                                   // if browser is Gecko, then...
      {
         if(eParElement.tagName == "TABLE")  // if parent is a table, then...
         {                                   // get its border as a number
            var nParBorder = parseInt(eParElement.border);
            if(isNaN(nParBorder))            // if no valid border attribute, then...
            {                                // check the table's frame attribute
               var nParFrame = eParElement.getAttribute('frame');
               if(nParFrame != null)         // if frame has ANY value, then...
               {
                  nLeftPos += 1;             // append one pixel to counter
               }
            }
            else if(nParBorder > 0)          // if a border width is specified, then...
            {
               nLeftPos += nParBorder;       // append the border width to counter
            }
         }
      }
      nLeftPos += eParElement.offsetLeft;    // append left offset of parent
      eParElement = eParElement.offsetParent; // and move up the element hierarchy
   }                                         // until no more offset parents exist
   return nLeftPos;                          // return the number calculated
}

function GetElementTop(eElement)
{
   if (!eElement && this)                    // if argument is invalid
   {                                         // (not specified, is null or is 0)
      eElement = this;                       // and function is a method
   }                                         // identify the element as the method owner

   var DL_bIE = document.all ? true : false; // initialize var to identify IE

   var nTopPos = eElement.offsetTop;         // initialize var to store calculations
   var eParElement = eElement.offsetParent;  // identify first offset parent element

   while (eParElement != null)
   {                                         // move up through element hierarchy
      if(DL_bIE)                             // if browser is IE, then...
      {
         if( (eParElement.tagName != "TABLE") && (eParElement.tagName != "BODY") )
         {                                   // if parent a table cell, then...
            nTopPos += eParElement.clientTop; // append cell border width to calcs
         }
      }
      else                                   // if browser is Gecko, then...
      {
         if(eParElement.tagName == "TABLE")  // if parent is a table, then...
         {                                   // get its border as a number
            var nParBorder = parseInt(eParElement.border);
            if(isNaN(nParBorder))            // if no valid border attribute, then...
            {                                // check the table's frame attribute
               var nParFrame = eParElement.getAttribute('frame');
               if(nParFrame != null)         // if frame has ANY value, then...
               {
                  nTopPos += 1;              // append one pixel to counter
               }
            }
            else if(nParBorder > 0)          // if a border width is specified, then...
            {
               nTopPos += nParBorder;        // append the border width to counter
            }
         }
      }

      nTopPos += eParElement.offsetTop;      // append top offset of parent
      eParElement = eParElement.offsetParent; // and move up the element hierarchy
   }                                         // until no more offset parents exist
   return nTopPos;                           // return the number calculated
}


//******* END POSITIONING STUFF



function getFormObjFromID(pageObj, idString) {
	var strLength = idString.length;
	var thisIDString = "";
	var formObj2return = null;
	outerFormLoop:
	for (cnt1=0; cnt1<pageObj.document.forms.length; cnt1++) {
		for (cnt2=0; cnt2<pageObj.document.forms[cnt1].elements.length; cnt2++) {
			if (pageObj.document.forms[cnt1].elements[cnt2].getAttribute("id") != null) {
				thisIDString = pageObj.document.forms[cnt1].elements[cnt2].id;
				if (thisIDString.substring(thisIDString.length - strLength, thisIDString.length) == idString) {
					//alert(thisIDString + "," + idString + "," + pageObj.document.forms[cnt1].elements[cnt2].value)
					formObj2return = pageObj.document.forms[cnt1].elements[cnt2]
					break outerFormLoop;
				}
			}
		}
	}
	return formObj2return;
}

function getUCDivID(idString) {
    //alert("hey");
	var divElms = document.getElementsByTagName("div");
	var thisUCDivID = "";
	var strLength = idString.length;
	var returnDivID = ""; 
	for (i=0; i<divElms.length; i++) {
		thisUCDivID = divElms[i].id;
		if (thisUCDivID.substring(thisUCDivID.length - strLength, thisUCDivID.length) == idString) {
			returnDivID = thisUCDivID;
			break;
		}
		
	}
	return returnDivID;
}

//this function returns the file ext.
function getFileExt(fileStr) {
	var retExt = "";
	retExt = fileStr.substring(fileStr.lastIndexOf("."), fileStr.length);
	return retExt;
}

function doSocialBookmarks() {

	var sBookMarkList = new Array("http://www.stumbleupon.com/submit|ico_stumble1.gif|url|title|?|Stumble It", "http://del.icio.us/post|ico_delicious1.gif|url|title|?|Bookmark this @ DEL.ICIO.US", "http://digg.com/submit?phase=2|ico_digg1.gif|url|title|&|Bookmark this @ DIGG", "http://myweb2.search.yahoo.com/myresults/bookmarklet|ico_yahoo1.gif|u|t|?|Bookmark this @ Yahoo");
	var bookMarkHTML1 = "<table class=\"bookMarkTable1\"><tr><td class=\"bookmarkHeader1\" colspan=\"" + sBookMarkList.length + "\">Bookmarks</td></tr><tr>"
	var bookMarkURL = document.location.href;
	var bookMarkTitle = document.title;
	for (i=0; i<sBookMarkList.length; i++) {
		divide = sBookMarkList[i].split("|");
		bookMarkHTML1 += "<td><a href=\"" + divide[0] + divide[4] + divide[2] + "=" + encodeURIComponent(bookMarkURL) + "&" + divide[3] + "=" + escape(bookMarkTitle) + "\" target=\"_blank\"><img src=\"images/" + divide[1] + "\" height=\"24\" width=\"24\" border=\"0\" alt=\"" + divide[5] + "\" title=\"" + divide[5] + "\" /></a></td>"
	}

	bookMarkHTML1 += "</tr></table>"
	document.write(bookMarkHTML1);

}

//****** BEGIN AUTO SLIDESHOW



var mySldShwObj = "";
var mkrSlideTimer = "";
var mkrSlideDuration = 5000;
var closeSldShwButImg1 = new Image;
var closeSldShwButImg2 = new Image;
closeSldShwButImg1.src = "images/but_closeSldShw_a.gif";
closeSldShwButImg2.src = "images/but_closeSldShw_b.gif";

function SetOpacity(object,opacityPct)
{
  // IE.
  object.style.filter = 'alpha(opacity=' + opacityPct + ')';
  // Old mozilla and firefox
  object.style.MozOpacity = opacityPct/100;
  // Everything else.
  object.style.opacity = opacityPct/100;
}


function mkrRunSldShw(slideImgs) {


	//initialize
	var bkgDiv = document.getElementById("mkrSldDisplayBox");
	bkgDiv.style.display = "block";
	var sldHdDiv = document.getElementById("mkrSlideHead");
	sldHdDiv.style.display = "block";
	mySldShwObj = new sldShwObj("mkrSlide_Div1", "mkrSlide_Div2", "mkrSld1Title", "mkrSld2Title", slideImgs);
	
	//are we currently viewing an image?
	var currentSldId = getQueryString("ssitem");
	if (currentSldId != "") {
	    for (i=0; i<mySldShwObj.sldImages.length;i++) {
	        if (mySldShwObj.sldImages[i].imgID == currentSldId) {
	            mySldShwObj.currImg = i;
	            break;
	        }
	    }
	} else {
	    mySldShwObj.currImg = 0;
	}
	
	var Img1 = new Image;
	Img1.src = mySldShwObj.sldImages[mySldShwObj.currImg].imgSrc;
	Img1.setAttribute("style", "margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;border:solid 3px #000000;");
	Img1.setAttribute("border", "0");
	Img1.setAttribute("alt", "Click for details");
	var divObj1 = document.getElementById(mySldShwObj.div1);
	var divObj2 = document.getElementById(mySldShwObj.div2);
	var titleArea1 = document.getElementById(mySldShwObj.titleDiv1);
	var titleArea2 = document.getElementById(mySldShwObj.titleDiv2);
	mkrClearElement(divObj1);
	mkrClearElement(divObj2);
	div1Span = document.createElement("span");
	divObj1.appendChild(div1Span);
	Img1Link = document.createElement("a");
	Img1Link.setAttribute("href", "#");
	Img1Link.setAttribute("onclick", "mkrGoToSlide()");
	Img1Link.appendChild(Img1);
	divObj1.appendChild(Img1Link);
	titleArea1.innerHTML = mySldShwObj.sldImages[mySldShwObj.currImg].imgTitle;
	titleArea2.innerHTML = "";
	divObj1.style.display = "block";
	divObj2.style.display = "block";

	mkrSlideTimer = setInterval("mkrChgSlides()",mkrSlideDuration);

}

function mkrEndSldShw() {

	window.clearInterval(mkrSlideTimer);

	var divObj1 = document.getElementById(mySldShwObj.div1);
	var divObj2 = document.getElementById(mySldShwObj.div2);
	var bkgDiv = document.getElementById("mkrSldDisplayBox");
	var sldHdDiv = document.getElementById("mkrSlideHead");
	sldHdDiv.style.display = "none";
	divObj1.style.display = "none";
	divObj2.style.display = "none";
	bkgDiv.style.display = "none";

	var titleArea1 = document.getElementById(mySldShwObj.titleDiv1);
	var titleArea2 = document.getElementById(mySldShwObj.titleDiv2);

	mkrClearElement(divObj1);
	mkrClearElement(divObj2);
	mkrClearElement(titleArea1);
	mkrClearElement(titleArea2);
}

function mkrChgSlides() {

	window.clearInterval(mkrSlideTimer);

	var Img1 = new Image;
	var Img2 = new Image;

	var divObj1 = document.getElementById(mySldShwObj.div1);
	var divObj2 = document.getElementById(mySldShwObj.div2);

	var titleArea1 = document.getElementById(mySldShwObj.titleDiv1);
	var titleArea2 = document.getElementById(mySldShwObj.titleDiv2);

	mkrClearElement(divObj1);
	mkrClearElement(divObj2);

	//which is next?
	var nxtImg = (mySldShwObj.currImg == (mySldShwObj.sldImages.length - 1))? 0:mySldShwObj.currImg + 1;

	Img1.src = mySldShwObj.sldImages[nxtImg].imgSrc;
	Img2.src = mySldShwObj.sldImages[mySldShwObj.currImg].imgSrc;

	Img1.setAttribute("style", "margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;border:solid 3px #000000;");
	Img1.setAttribute("border", "0");
	Img1.setAttribute("alt", "Click for details");
	Img1.setAttribute("title", "Click for details");
	Img2.setAttribute("style", "margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;border:solid 3px #000000;");
	Img2.setAttribute("border", "0");

	mySldShwObj.div1Opacity = 0;
	mySldShwObj.div2Opacity = 100;

	SetOpacity(divObj1,mySldShwObj.div1Opacity);
	SetOpacity(divObj2,mySldShwObj.div2Opacity);

	SetOpacity(titleArea1,mySldShwObj.div1Opacity);
	SetOpacity(titleArea2,mySldShwObj.div2Opacity);

	div1Span = document.createElement("span");
	div2Span = document.createElement("span");

	divObj1.appendChild(div1Span);
	divObj2.appendChild(div2Span);

	//divObj1.appendChild(Img1);
	//divObj2.appendChild(Img2);

	Img1Link = document.createElement("a");
	Img1Link.setAttribute("href", "#");
	Img1Link.setAttribute("onclick", "mkrGoToSlide()");
	Img1Link.appendChild(Img1);
	Img2Link = document.createElement("a");
	Img2Link.setAttribute("href", "#");
	Img2Link.setAttribute("onclick", "return false;");
	Img2Link.appendChild(Img2);
	divObj1.appendChild(Img1Link);
	divObj2.appendChild(Img2Link);

	titleArea1.innerHTML = mySldShwObj.sldImages[nxtImg].imgTitle;
	titleArea2.innerHTML = mySldShwObj.sldImages[mySldShwObj.currImg].imgTitle;

	mySldShwObj.img1 = Img1;
	mySldShwObj.img2 = Img2;
	mySldShwObj.currImg = nxtImg;

	mkrSlideTimer = setInterval("isSlideLoadDone()", 200);



}

function sldShwObj(div1id, div2id, titleDiv1Id, titleDiv2id, sldImgObj) {
	this.div1 = div1id;
	this.div2 = div2id;
	this.titleDiv1 = titleDiv1Id;
	this.titleDiv2 = titleDiv2id;
	this.div1Opacity = 100;
	this.div2Opacity = 0;
	this.sldImages = sldImgObj;
	this.currImg = 0;
	this.img1 = null;
	this.img2 = null;

}

function sldObj(sldSrc, sldID, sldTitle, sldGroup, sldW, sldH) {
	this.imgSrc = sldSrc;
	this.imgID = sldID;
	this.imgTitle = sldTitle;
	this.imgGroup = sldGroup;
	this.imgW = sldW;
	this.imgH = sldH;
}


function mkrClearElement(obj) {
	while(obj.firstChild) obj.removeChild(obj.firstChild);
}

function mkrChangeOpacity() {

	var divObj1 = document.getElementById(mySldShwObj.div1);
	var divObj2 = document.getElementById(mySldShwObj.div2);
	var titleArea1 = document.getElementById(mySldShwObj.titleDiv1);
	var titleArea2 = document.getElementById(mySldShwObj.titleDiv2);
	var div1complete = false;
	var div2complete = false;

	//div1 always fades up
	//div 2 always fades down

	if (mySldShwObj.div1Opacity < 100) {
		mySldShwObj.div1Opacity = mySldShwObj.div1Opacity + 10;
	} else {
		div1complete = true;
	}
	if (mySldShwObj.div2Opacity > 0) {
		mySldShwObj.div2Opacity = mySldShwObj.div2Opacity - 10;
	} else {
		div2complete = true;
	}

	if (div1complete && div2complete) {
		window.clearInterval(mkrSlideTimer);
		mkrSlideTimer = setInterval("mkrChgSlides()",mkrSlideDuration);
	} else {
		SetOpacity(divObj1,mySldShwObj.div1Opacity);
		SetOpacity(divObj2,mySldShwObj.div2Opacity);
		SetOpacity(titleArea1,mySldShwObj.div1Opacity);
		SetOpacity(titleArea2,mySldShwObj.div2Opacity);
	}



}

function isSlideLoadDone() {
	var slidesLoaded = false;
	var sldImg1 = mySldShwObj.img1;
	var sldImg2 = mySldShwObj.img2;

	if (sldImg1 != null && sldImg2 != null) {
		if (sldImg1.complete && sldImg2.complete) {
			slidesLoaded = true;
		}
	} else {
		slidesLoaded = true;
	}

	if (slidesLoaded) {
		window.clearInterval(mkrSlideTimer);
		mkrSlideTimer = window.setInterval("mkrChangeOpacity()",100);
	}

}

function mkrGoToSlide() {
	var slideID = mySldShwObj.sldImages[mySldShwObj.currImg].imgID;
	var slideGrp = mySldShwObj.sldImages[mySldShwObj.currImg].imgGroup;
	var slidePg = getQueryString("pg");
	document.location = "default.aspx?pg=" + slidePg + "&ssgrp=" + slideGrp + "&ssitem=" + slideID;
}





//****** END AUTO SLIDESHOW