// JavaScript Document

function showhide(id){
if (document.getElementById){
obj = document.getElementById(id);
if (obj.style.display == "none"){
obj.style.display = "";
} else {
obj.style.display = "none";
}
}
}

//POP UPS

function popGeneral(url, width, height)

    {

        x = window.open(url,"details","scrollbars=yes,left=0,top=0,width=" + width + ",height=" + height + ",resizable=yes");

    

	}
function popGeneral2(url, width, height)

    {

        x = window.open(url,"details","scrollbars=yes,toolbar=yes,menubar=yesmleft=0,top=0,width=" + width + ",height=" + height + ",resizable=yes");

    

	}

function popDiagram(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=350,screenY=0,top=272,width=650,height=250,resizable=no");

    }

    function popSmall(url)

    {

        x = window.open(url,"details","scrollbars=no,screenX=0,left=0,screenY=0,top=0,width=320,height=438,resizable=no");

    }

function popLarge(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=0,screenY=0,top=0,width=600,height=500,resizable=no");

    }

function popXLarge(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=0,screenY=0,top=0,width=760,height=550,resizable=no");

    }

function popPR(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=0,screenY=0,top=0,width=555,height=675,resizable=no");

    }

function popProdBlock(url)

        {

            x = window.open(url,"details","scrollbars=no,screenX=0,left=0,screenY=0,top=0,width=450,height=450,resizable=no");

    }

function popThanks(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=0,screenY=0,top=0,width=616,height=400,resizable=no");

    }

	function popText(url)

    {

        x = window.open(url,"details","scrollbars=yes,screenX=0,left=0,screenY=0,top=0,width=501,height=318,resizable=no");

    }

function popItCustom(url, width, height)

    {

        x = window.open(url,"details","scrollbars=yes,toolbar=yes,location=1,left=235,top=350,width=" + width + ",height=" + height + ",resizable=yes");

    }

 

function openBrWindow(theURL) 

{ 

var winName = "Popup";

var features = "scrollbars=yes,width=400,height=300";



  window.open(theURL,winName,features);

}



function close_window() {

    window.close();

}

// END



// Local Nav Expand & Collapse 



function toggleFirstSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;



if(state != null && state == "none")

 {

 document.getElementById(divObj1).className = "firstSectionOpen";

 document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

	document.getElementById(divObj1).className = "firstSectionClose";

	document.getElementById(divObj2).style.display = "none";

  }

}



function toggleSecondSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;

 

 if(state != null && state == "none") 

 {

  document.getElementById(divObj1).className = "secondSectionOpen";

  document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

   document.getElementById(divObj1).className = "secondSectionClose";

   document.getElementById(divObj2).style.display = "none";

  }

}



function toggleThirdSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;

 

 if(state != null && state == "none") 

 {

  document.getElementById(divObj1).className = "thirdSectionOpen";

  document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

   document.getElementById(divObj1).className = "thirdSectionClose";

   document.getElementById(divObj2).style.display = "none";

  }

}

function toggleSelectSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;



if(state != null && state == "none")

 {

 document.getElementById(divObj1).className = "selectSectionOpen";

 document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

	document.getElementById(divObj1).className = "selectSectionClose";

	document.getElementById(divObj2).style.display = "none";

  }

}

//END



//Table Data Sort



addEvent(window, "load", sortables_init);



var SORT_COLUMN_INDEX;



function sortables_init() {

    // Find all tables with class sortable and make them sortable

    if (!document.getElementsByTagName) return;

    tbls = document.getElementsByTagName("table");

    for (ti=0;ti<tbls.length;ti++) {

        thisTbl = tbls[ti];

        if (((' '+thisTbl.className+' ').indexOf("sortable") != -1) && (thisTbl.id)) {

            //initTable(thisTbl.id);

            ts_makeSortable(thisTbl);

        }

    }

}



function ts_makeSortable(table) {

    if (table.rows && table.rows.length > 0) {

        var firstRow = table.rows[0];

    }

    if (!firstRow) return;

    

    // We have a first row: assume it's the header, and make its contents clickable links

    for (var i=0;i<firstRow.cells.length;i++) {

        var cell = firstRow.cells[i];

        var txt = ts_getInnerText(cell);

        cell.innerHTML = '<a href="#" class="sortheader" onclick="ts_resortTable(this);return false;">'+txt+'<span class="sortarrow"></span></a>';

    }

}



function ts_getInnerText(el) {

	if (typeof el == "string") return el;

	if (typeof el == "undefined") { return el };

	if (el.innerText) return el.innerText;	//Not needed but it is faster

	var str = "";

	

	var cs = el.childNodes;

	var l = cs.length;

	for (var i = 0; i < l; i++) {

		switch (cs[i].nodeType) {

			case 1: //ELEMENT_NODE

				str += ts_getInnerText(cs[i]);

				break;

			case 3:	//TEXT_NODE

				str += cs[i].nodeValue;

				break;

		}

	}

	return str;

}



function ts_resortTable(lnk) {

    // get the span

    var span;

    for (var ci=0;ci<lnk.childNodes.length;ci++) {

        if (lnk.childNodes[ci].tagName && lnk.childNodes[ci].tagName.toLowerCase() == 'span') span = lnk.childNodes[ci];

    }

    var spantext = ts_getInnerText(span);

    var td = lnk.parentNode;

    var column = td.cellIndex;

    var table = getParent(td,'TABLE');

    

    // Work out a type for the column

    if (table.rows.length <= 1) return;

    var itm = ts_getInnerText(table.rows[1].cells[column]);

    sortfn = ts_sort_caseinsensitive;

    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d\d\d$/)) sortfn = ts_sort_date;

    if (itm.match(/^\d\d[\/-]\d\d[\/-]\d\d$/)) sortfn = ts_sort_date;

    if (itm.match(/^[£$]/)) sortfn = ts_sort_currency;

    if (itm.match(/^[\d\.]+$/)) sortfn = ts_sort_numeric;

    SORT_COLUMN_INDEX = column;

    var firstRow = new Array();

    var newRows = new Array();

    for (i=0;i<table.rows[0].length;i++) { firstRow[i] = table.rows[0][i]; }

    for (j=1;j<table.rows.length;j++) { newRows[j-1] = table.rows[j]; }



    newRows.sort(sortfn);



    if (span.getAttribute("sortdir") == 'down') {

        newRows.reverse();

        span.setAttribute('sortdir','up');

    } else {

       span.setAttribute('sortdir','down');

    }

    

    // We appendChild rows that already exist to the tbody, so it moves them rather than creating new ones

    // don't do sortbottom rows

    for (i=0;i<newRows.length;i++) { if (!newRows[i].className || (newRows[i].className && (newRows[i].className.indexOf('sortbottom') == -1))) table.tBodies[0].appendChild(newRows[i]);}

    // do sortbottom rows only

    for (i=0;i<newRows.length;i++) { if (newRows[i].className && (newRows[i].className.indexOf('sortbottom') != -1)) table.tBodies[0].appendChild(newRows[i]);}

    

    // Delete any other arrows there may be showing

    var allspans = document.getElementsByTagName("span");

    for (var ci=0;ci<allspans.length;ci++) {

        if (allspans[ci].className == 'sortarrow') {

            if (getParent(allspans[ci],"table") == getParent(lnk,"table")) { // in the same table as us?

                allspans[ci].innerHTML = '';

            }

        }

    }

        

    

}



function getParent(el, pTagName) {

	if (el == null) return null;

	else if (el.nodeType == 1 && el.tagName.toLowerCase() == pTagName.toLowerCase())	// Gecko bug, supposed to be uppercase

		return el;

	else

		return getParent(el.parentNode, pTagName);

}

function ts_sort_date(a,b) {

    // y2k notes: two digit years less than 50 are treated as 20XX, greater than 50 are treated as 19XX

    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);

    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);

    if (aa.length == 10) {

        dt1 = aa.substr(6,4)+aa.substr(3,2)+aa.substr(0,2);

    } else {

        yr = aa.substr(6,2);

        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }

        dt1 = yr+aa.substr(3,2)+aa.substr(0,2);

    }

    if (bb.length == 10) {

        dt2 = bb.substr(6,4)+bb.substr(3,2)+bb.substr(0,2);

    } else {

        yr = bb.substr(6,2);

        if (parseInt(yr) < 50) { yr = '20'+yr; } else { yr = '19'+yr; }

        dt2 = yr+bb.substr(3,2)+bb.substr(0,2);

    }

    if (dt1==dt2) return 0;

    if (dt1<dt2) return -1;

    return 1;

}



function ts_sort_currency(a,b) { 

    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');

    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).replace(/[^0-9.]/g,'');

    return parseFloat(aa) - parseFloat(bb);

}



function ts_sort_numeric(a,b) { 

    aa = parseFloat(ts_getInnerText(a.cells[SORT_COLUMN_INDEX]));

    if (isNaN(aa)) aa = 0;

    bb = parseFloat(ts_getInnerText(b.cells[SORT_COLUMN_INDEX])); 

    if (isNaN(bb)) bb = 0;

    return aa-bb;

}



function ts_sort_caseinsensitive(a,b) {

    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]).toLowerCase();

    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]).toLowerCase();

    if (aa==bb) return 0;

    if (aa<bb) return -1;

    return 1;

}



function ts_sort_default(a,b) {

    aa = ts_getInnerText(a.cells[SORT_COLUMN_INDEX]);

    bb = ts_getInnerText(b.cells[SORT_COLUMN_INDEX]);

    if (aa==bb) return 0;

    if (aa<bb) return -1;

    return 1;

}





function addEvent(elm, evType, fn, useCapture)

// addEvent and removeEvent

// cross-browser event handling for IE5+,  NS6 and Mozilla

{

  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");

  }

} 



//END





/* ####################################################### */

/* Script for Product Detail Tabs Hide and Show */



//if (document.images && document.location.href.indexOf('sitemap.asp')==-1){

if (document.images){

	

	

		var bcompatibilityon=new Image();bcompatibilityon.src="../common/images/nav_tabs/compatibility_on.gif";

	var bcompatibilityoff=new Image();bcompatibilityoff.src="../common/images/nav_tabs/compatibility_off.gif";

	var bcompatibilityover=new Image();bcompatibilityover.src="../common/images/nav_tabs/compatibility_over.gif";

	

	

	

		var bkeyon=new Image();bkeyon.src="../common/images/nav_tabs/key_on.gif";

	var bkeyoff=new Image();bkeyoff.src="../common/images/nav_tabs/key_off.gif";

	var bkeyover=new Image();bkeyover.src="../common/images/nav_tabs/key_over.gif";



	var bpressroomon=new Image();bpressroomon.src="../common/images/nav_tabs/memnew_on.gif";

	var bpressroomoff=new Image();bpressroomoff.src="../common/images/nav_tabs/memnew_off.gif";

	var bpressroomover=new Image();bpressroomover.src="../common/images/nav_tabs/memnew_over.gif";

	

	var bspecson=new Image();bspecson.src="../common/images/nav_tabs/specs_on.gif";

	var bspecsoff=new Image();bspecsoff.src="../common/images/nav_tabs/specs_off.gif";

	var bspecsover=new Image();bspecsover.src="../common/images/nav_tabs/specs_over.gif";



	var baccesson=new Image();baccesson.src="../common/images/nav_tabs/access_on.gif";

	var baccessoff=new Image();baccessoff.src="../common/images/nav_tabs/access_off.gif";

	var baccessover=new Image();baccessover.src="../common/images/nav_tabs/access_over.gif";



	var bbuyon=new Image();bbuyon.src="../common/images/nav_tabs/buy_on.gif";

	var bbuyoff=new Image();bbuyoff.src="../common/images/nav_tabs/buy_off.gif";

	var bbuyover=new Image();bbuyover.src="../common/images/nav_tabs/buy_over.gif";



	var bsupporton=new Image();bsupporton.src="../common/images/nav_tabs/support_on.gif";

	var bsupportoff=new Image();bsupportoff.src="../common/images/nav_tabs/support_off.gif";

	var bsupportover=new Image();bsupportover.src="../common/images/nav_tabs/support_over.gif";

	

	var barchiveson=new Image();barchiveson.src="../common/images/nav_tabs/memtrends_on.gif";

	var barchivesoff=new Image();barchivesoff.src="../common/images/nav_tabs/memtrends_off.gif";

	var barchivesover=new Image();barchivesover.src="../common/images/nav_tabs/memtrends_over.gif";

		

	var bkiton=new Image();bkiton.src="../common/images/nav_tabs/memwhy_on.gif";

	var bkitoff=new Image();bkitoff.src="../common/images/nav_tabs/memwhy_off.gif";

	var bkitover=new Image();bkitover.src="../common/images/nav_tabs/memwhy_over.gif";

	

	var binquiryon=new Image();binquiryon.src="../common/images/nav_tabs/memchallenge_on.gif";

	var binquiryoff=new Image();binquiryoff.src="../common/images/nav_tabs/memchallenge_off.gif";

	var binquiryover=new Image();binquiryover.src="../common/images/nav_tabs/memchallenge_over.gif";

	

	var brelatedon=new Image();brelatedon.src="../common/images/nav_tabs/related_on.gif";

	var brelatedoff=new Image();brelatedoff.src="../common/images/nav_tabs/related_off.gif";

	var brelatedover=new Image();brelatedover.src="../common/images/nav_tabs/related_over.gif";

	

	var bresourceson=new Image();bresourceson.src="../img/butt_resources_on.gif";

	var bresourcesoff=new Image();bresourcesoff.src="../img/butt_resources_off.gif";

	var bresourcesover=new Image();bresourcesover.src="../img/butt_resources_over.gif";

	

	var btakeacloserlookover=new Image();btakeacloserlookover.src="../img/butt_takeacloserlook_over.gif";

	var btakeacloserlookoff=new Image();btakeacloserlookoff.src="../img/butt_takeacloserlook_off.gif";

	

	var bcompareover=new Image();bcompareover.src="../img/butt_compare_over.gif";

	var bcompareoff=new Image();bcompareoff.src="../img/butt_compare_off.gif";

	

	var bwheretobuyover=new Image();bwheretobuyover.src="../img/butt_wheretobuy_over.gif";

	var bwheretobuyoff=new Image();bwheretobuyoff.src="../img/butt_wheretobuy_off.gif";

}







/* Product Detail panel handling */

var currentOpenInfo="key";



function actInfo(id){

	if(id!=currentOpenInfo){

		var buttname="b"+id;

		act(buttname);

	}

}



function inactInfo(id){

	//alert('id='+id+'\ncurrentOpenInfo='+currentOpenInfo);

	if(id!=currentOpenInfo){

		var buttname="b"+id;

		inact(buttname);

	}

}



function viewInfo(id){

	if(id!=currentOpenInfo){

		var buttname="b"+id;

		var prevbuttname="b"+currentOpenInfo;

		closePane(currentOpenInfo);

		if(document[prevbuttname])document[prevbuttname].src=eval(prevbuttname+'off.src');

		openPane(id);		

		document[buttname].src=eval(buttname+'on.src');

		currentOpenInfo=id;

	}

	//alert('id='+id+'\ncurrentOpenInfo='+currentOpenInfo);

}

function closePane(id){

	var theObj=getElementRef(id)

	if (theObj) {

		if (dom1||ie4plus){

			theObj.style.display='none';

		} else {

			theObj.display='none';

		}

	}

}



function openPane(id){

	var theObj=getElementRef(id)

	if (theObj) {

		if (dom1||ie4plus){

			theObj.style.display='block';

		} else {

			theObj.display='block';

		}

	}

}

/* ############################################################# */

/* Script for Product Detail tabs content handling */





var cookieName='collapsedPanels';

var daysToKeep = 365; // 



var expires = new Date();

expires.setTime(expires.getTime()+(daysToKeep*24*60*60*1000));



function initPanelSettings(){

	get_array(cookieName, collapsedPanelsList);//updates array from cookie

	//numPanelsToHide=collapsedPanelsList.length;

	

	collapsedPanelsListstr=collapsedPanelsList.join("\n");

	//alert('collapsedPanelsList='+collapsedPanelsListstr)

	//alert(collapsedPanelsList.length)

	//if(collapsedPanelsList.length>0){

		//if(collapsedPanelsList[0]==null)alert(collapsedPanelsList[0])

		/*

		if(collapsedPanelsList.length>0){

			for (i=0; i<collapsedPanelsList.length; i++) {

				//remove null values?

				//alert(collapsedPanelsList[i])

				if(collapsedPanelsList[i]==null || collapsedPanelsList[i]=="null") {

					var x=i;

					//alert('trying to del collapsedPanelsList['+i+']');

					del_entry(cookieName, collapsedPanelsList, xs, expires)

				}

			}	

		}

		*/

		for (i=0; i<collapsedPanelsList.length; i++) {

			togglePane(collapsedPanelsList[i],true)//closes panel without re-adding to array (second param)

		}



}

/*

function isPanelDisplayed(id){

	var theObj=getElementRef(id);

	if(theObj==null)return null;

	if (theObj.style){

		if(theObj.style.display=='block') return true;

		else return false;

	}else if (theObj.display){

		if(theObj.display)=='block') return true;

		else return false;

	}else{

		return null;

	}

}

*/

function openPane(id){

	var theObj=getElementRef(id);

	if(theObj==null)return;

	if(theObj.style)theObj.style.display='block';

	else if(theObj.display)theObj.display='block';

}

function closePane(id){

	var theObj=getElementRef(id);

	if(theObj==null)return;

	if(theObj.style)theObj.style.display='none';

	else if(theObj.display)theObj.display='none';

}



function togglePane(id,nonewcookieentry){

	//alert('togglePane')

	var theObj=getElementRef(id);

	if(theObj==null)return;//why try if we know the browser cant

	//get_array(cookieName, collapsedPanelsList);//update array from cookie

	

	if (theObj) {

		if (theObj.style){//browsers that support the style object

			if (theObj.style.display=='block') {

				//hiding panel

				//alert('hiding '+id)

				theObj.style.display='none';

				convertToShow(id);

				if(nonewcookieentry!=true){

					//add panel to cookie

					

					//attempting to see if this is already in the array

					var existsinarray=false;

					for (var j=0; j<collapsedPanelsList.length; j++) {

						if(id==collapsedPanelsList[j]) existsinarray=true;

					}

					

					if (!existsinarray){

						collapsedPanelsList[collapsedPanelsList.length]=id;

						set_array(cookieName, collapsedPanelsList, expires);

					}

				}

			}

			else {

				//showing panel

				//alert('showing '+id)

				theObj.style.display='block';

				convertToHide(id)

				//removing panel from cookie

				for (var j=0; j<collapsedPanelsList.length; j++) {

					if(collapsedPanelsList[j]==id){

						var pos = j; // assign the number of the value within the cookie that is to be deleted

						del_entry(cookieName, collapsedPanelsList, pos, expires);//

					}

				}

			}

		} else {//browsers that DONOT support the style object

			if (theObj.display=='block') {

				//hiding panel

				theObj.display='none';

				convertToShow(id);

				if(nonewcookieentry!=true){

					//add panel to cookie

					collapsedPanelsList[collapsedPanelsList.length]=id;

					set_array(cookieName, collapsedPanelsList, expires);

				}

			}

			else {

				//showing panel

				theObj.display='block';

				convertToHide(id);

				//removing panel from cookie

				for (var j=0; j<collapsedPanelsList.length; j++) {

					if(collapsedPanelsList[j]==id){

						var pos = j; // assign the number of the value within the cookie that is to be deleted

						del_entry(cookieName, collapsedPanelsList, pos, expires);//

					}

				}

			}

		}

	}

}



var hidebutt=new Image();hidebutt.src='../img/butt_red_hide.gif';

var showbutt=new Image();showbutt.src='../img/butt_red_show.gif';

var hidenewsbutt=new Image();hidenewsbutt.src='../img/butt_greybar_hide.gif';

var shownewsbutt=new Image();shownewsbutt.src='../img/butt_greybar_show.gif';



function convertToHide(n){

	if(document.images){

		imgname='showhide'+n;

		thisbutt=document[imgname];

		thisbutt.src=(n.indexOf('news')==-1)?hidebutt.src:hidenewsbutt.src;

		thisbutt.alt='Click to hide';

	}

}

function convertToShow(n){

	if(document.images){

		imgname='showhide'+n;

		thisbutt=document[imgname];

		thisbutt.src=(n.indexOf('news')==-1)?showbutt.src:shownewsbutt.src;

		thisbutt.alt='Click to show';

	}

}



var dom1=(document.getElementById)?1:0;

var ie4plus=(document.all)?1:0;

var ns4=(document.layers)?1:0;

var safari=(navigator.appVersion.indexOf("Safari") != -1)?1:0;

var mac=(navigator.appVersion.indexOf("Macintosh") != -1)?1:0;

var lowerUserAgent=navigator.userAgent.toLowerCase();

var opera = (lowerUserAgent.indexOf('opera')!=-1)?true:false;





function pact(imgN){if (document.images) document[imgN].src=pbuttover.src;}

function pinact(imgN){if (document.images) document[imgN].src=pbuttoff.src;}

function gact(imgN){if (document.images) document[imgN].src=gobuttover.src;}

function ginact(imgN){if (document.images) document[imgN].src=gobuttoff.src;}

function act(imgN){	if (document.images) document[imgN].src=eval(imgN+'over.src');}

function inact(imgN){if (document.images) document[imgN].src=eval(imgN+'off.src');}



function isUndefined(v) {

    var undef;

    return v===undef;

}



function getElementRef(id){

	if (dom1) return document.getElementById(id);

	else if (ie4plus) return document.all[id];

	else if (ns4) return document.layers[id];

	else return null;

}



//END

// Open and Close section 



function toggleFirstSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;



if(state != null && state == "none")

 {

 document.getElementById(divObj1).className = "firstSectionOpen";

 document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

	document.getElementById(divObj1).className = "firstSectionClose";

	document.getElementById(divObj2).style.display = "none";

  }

}



function toggleSecondSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;

 

 if(state != null && state == "none") 

 {

  document.getElementById(divObj1).className = "secondSectionOpen";

  document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

   document.getElementById(divObj1).className = "secondSectionClose";

   document.getElementById(divObj2).style.display = "none";

  }

}



function toggleThirdSection(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;

 

 if(state != null && state == "none") 

 {

  document.getElementById(divObj1).className = "thirdSectionOpen";

  document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

   document.getElementById(divObj1).className = "thirdSectionClose";

   document.getElementById(divObj2).style.display = "none";

  }

}

function toggleSectionA(divObj1,divObj2) {



state = document.getElementById(divObj2).style.display;



if(state != null && state == "none")

 {

 document.getElementById(divObj1).className = "sectionAOpen";

 document.getElementById(divObj2).style.display = "block";

  } 

  else 

  {

	document.getElementById(divObj1).className = "sectionAClose";

	document.getElementById(divObj2).style.display = "none";

  }

}

//END

// -------------------------------------------------------------------

// Switch Content Script- By Dynamic Drive, available at: http://www.dynamicdrive.com

// Last updated: Jan 5th, 2007

// -------------------------------------------------------------------



function switchcontent(className){

this.className=className

this.collapsePrev=false //Default: Collapse previous content each time

this.enablePersist=false //Default: Disable session only persistence

//Limit type of element to scan for on page for switch contents if 2nd function parameter is defined, for efficiency sake (ie: "div")

this.filter_content_tag=(arguments.length==2)? arguments[1].toLowerCase() : ""

}



switchcontent.prototype.setStatus=function(openHTML, closeHTML){ //PUBLIC: Set open/ closing HTML indicator. Optional

this.statusOpen=openHTML

this.statusClosed=closeHTML

}



switchcontent.prototype.setColor=function(openColor, closeColor){ //PUBLIC: Set open/ closing color of switch header. Optional

this.colorOpen=openColor

this.colorClosed=closeColor

}



switchcontent.prototype.setPersist=function(bool){ //PUBLIC: Enable/ disable persistence. Default is true.

this.enablePersist=bool

}



switchcontent.prototype.collapsePrevious=function(bool){ //PUBLIC: Enable/ disable collapse previous content. Default is false.

this.collapsePrev=bool

}





switchcontent.prototype.sweepToggle=function(setting){ //PUBLIC: Expand/ contract all contents method. (Values: "contract"|"expand")

if (typeof this.headers!="undefined" && this.headers.length>0){ //if there are switch contents defined on the page

for (var i=0; i<this.headers.length; i++){

if (setting=="expand")

this.expandcontent(this.headers[i]) //expand each content

else if (setting=="contract")

this.contractcontent(this.headers[i]) //contract each content

}

}

}





// -------------------------------------------------------------------

// PUBLIC: defaultExpanded(indices_of_contents)- Set contents that should be expanded by default when the page loads.

// Note that the persistence feature (if enabled) overrides this setting.

// Pass in the position of the contents relative to the rest of the contents ie: defaultExpanded(0,2,3) would expand the 1st, 3rd, and 4th contents by default

// -------------------------------------------------------------------



switchcontent.prototype.defaultExpanded=function(){

var expandedindices=[] //Array to hold indices (position) of content to be expanded by default

//Loop through function arguments, and store each one within array

//Two test conditions: 1) End of Arguments array, or 2) If "collapsePrev" is enabled, only the first entered index (as only 1 content can be expanded at any time)

for (var i=0; (!this.collapsePrev && i<arguments.length) || (this.collapsePrev && i==0); i++)

expandedindices[expandedindices.length]=arguments[i]

this.expandedindices=expandedindices.join(",") //convert array into a string of the format: "0,2,3" for later parsing by script

}





//PRIVATE: Sets color of switch header.



switchcontent.prototype.togglecolor=function(header, status){

if (typeof this.colorOpen!="undefined")

header.style.color=status

}





//PRIVATE: Sets status indicator HTML of switch header.



switchcontent.prototype.togglestatus=function(header, status){

if (typeof this.statusOpen!="undefined")

header.firstChild.innerHTML=status

}





//PRIVATE: Contracts a content based on its corresponding header entered



switchcontent.prototype.contractcontent=function(header){

var innercontent=document.getElementById(header.id.replace("-title", "")) //Reference content for this header

innercontent.style.display="none"

this.togglestatus(header, this.statusClosed)

this.togglecolor(header, this.colorClosed)

}





//PRIVATE: Expands a content based on its corresponding header entered



switchcontent.prototype.expandcontent=function(header){

var innercontent=document.getElementById(header.id.replace("-title", ""))

innercontent.style.display="block"

this.togglestatus(header, this.statusOpen)

this.togglecolor(header, this.colorOpen)

}



// -------------------------------------------------------------------

// PRIVATE: toggledisplay(header)- Toggles between a content being expanded or contracted

// If "Collapse Previous" is enabled, contracts previous open content before expanding current

// -------------------------------------------------------------------



switchcontent.prototype.toggledisplay=function(header){

var innercontent=document.getElementById(header.id.replace("-title", "")) //Reference content for this header

if (innercontent.style.display=="block")

this.contractcontent(header)

else{

this.expandcontent(header)

if (this.collapsePrev && typeof this.prevHeader!="undefined" && this.prevHeader.id!=header.id) // If "Collapse Previous" is enabled and there's a previous open content

this.contractcontent(this.prevHeader) //Contract that content first

}

if (this.collapsePrev)

this.prevHeader=header //Set current expanded content as the next "Previous Content"

}





// -------------------------------------------------------------------

// PRIVATE: collectElementbyClass()- Searches and stores all switch contents (based on shared class name) and their headers in two arrays

// Each content should carry an unique ID, and for its header, an ID equal to "CONTENTID-TITLE"

// -------------------------------------------------------------------



switchcontent.prototype.collectElementbyClass=function(classname){ //Returns an array containing DIVs with specified classname

var classnameRE=new RegExp("(^|\\s+)"+classname+"($|\\s+)", "i") //regular expression to screen for classname within element

this.headers=[], this.innercontents=[]

if (this.filter_content_tag!="") //If user defined limit type of element to scan for to a certain element (ie: "div" only)

var allelements=document.getElementsByTagName(this.filter_content_tag)

else //else, scan all elements on the page!

var allelements=document.all? document.all : document.getElementsByTagName("*")

for (var i=0; i<allelements.length; i++){

if (typeof allelements[i].className=="string" && allelements[i].className.search(classnameRE)!=-1){

if (document.getElementById(allelements[i].id+"-title")!=null){ //if header exists for this inner content

this.headers[this.headers.length]=document.getElementById(allelements[i].id+"-title") //store reference to header intended for this inner content

this.innercontents[this.innercontents.length]=allelements[i] //store reference to this inner content

}

}

}

}





//PRIVATE: init()- Initializes Switch Content function (collapse contents by default unless exception is found)



switchcontent.prototype.init=function(){

var instanceOf=this

this.collectElementbyClass(this.className) //Get all headers and its corresponding content based on shared class name of contents

if (this.headers.length==0) return //If no headers are present (no contents to switch), just exit

var opencontents_ids=(this.enablePersist)? ','+switchcontent.getCookie(this.className)+',' : (!this.enablePersist)? ','+this.expandedindices+',' : ""

for (var i=0; i<this.headers.length; i++){ //BEGIN FOR LOOP (1)

if (typeof this.statusOpen!="undefined") //If open/ closing HTML indicator is enabled/ set

this.headers[i].innerHTML='<span class="status"></span>'+this.headers[i].innerHTML //Add a span element to original HTML to store indicator

if (opencontents_ids.indexOf(','+i+',')!=-1){ //(2) if index "i" exists within cookie string or default-enabled string (i=position of the content to expand)

this.expandcontent(this.headers[i]) //Expand each content per stored indices (if ""Collapse Previous" is set, only one content)

if (this.collapsePrev) //If "Collapse Previous" set

this.prevHeader=this.headers[i]  //Indicate the expanded content's corresponding header as the last clicked on header (for logic purpose)

}

else //else if no indices found in stored string

this.contractcontent(this.headers[i]) //Contract each content by default

this.headers[i].onclick=function(){instanceOf.toggledisplay(this)}

}

if (this.enablePersist)

switchcontent.dotask(window, function(){instanceOf.rememberpluscleanup()}, "unload") //Call persistence method onunload

}





// -------------------------------------------------------------------

// PRIVATE: rememberpluscleanup()- Stores the indices of content that are expanded inside session only cookie

// If "Collapse Previous" is enabled, only 1st expanded content index is stored

// -------------------------------------------------------------------



switchcontent.prototype.rememberpluscleanup=function(){ //store index of opened ULs relative to other ULs in Tree into cookie

var opencontents=new Array()

for (var i=0; i<this.innercontents.length; i++){

//If persistence enabled, content in question is expanded, and either "Collapse Previous" is disabled, or if enabled, this is the first expanded content

if (this.enablePersist && this.innercontents[i].style.display=="block" && (!this.collapsePrev || (this.collapsePrev && opencontents.length<1)))

opencontents[opencontents.length]=i //save the index of the opened UL (relative to the entire list of ULs) as an array element

this.headers[i].onclick=null //Cleanup code

}

if (typeof this.statusOpen!="undefined") //Cleanup code

this.statusOpen=this.statusClosed=null //Cleanup code

switchcontent.setCookie(this.className, opencontents.join(",")) //populate cookie with indices of open contents: classname=1,2,3,etc

}





// -------------------------------------------------------------------

// A few utility functions below:

// -------------------------------------------------------------------





switchcontent.dotask=function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)

var tasktype=(window.addEventListener)? tasktype : "on"+tasktype

if (target.addEventListener)

target.addEventListener(tasktype, functionref, false)

else if (target.attachEvent)

target.attachEvent(tasktype, functionref)

}



switchcontent.getCookie=function(Name){ 

var re=new RegExp(Name+"=[^;]+", "i"); //construct RE to search for target name/value pair

if (document.cookie.match(re)) //if cookie found

return document.cookie.match(re)[0].split("=")[1] //return its value

return ""

}



switchcontent.setCookie=function(name, value){

document.cookie = name+"="+value

}

