
function MM_callJS(jsStr) { //v2.0
  return eval(jsStr)
}

function MM_changeProp(objName,x,theProp,theValue) { //v3.0
  var obj = MM_findObj(objName);
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)) eval("obj."+theProp+"='"+theValue+"'");
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_goToURL() { //v3.0
  var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
  for (i=0; i<(args.length-1); i+=2) eval(args[i]+".location='"+args[i+1]+"'");
}

function MM_jumpMenu(targ,selObj,restore){ //v3.0
  eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
  if (restore) selObj.selectedIndex=0;
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);

function MM_setTextOfLayer(objName,x,newText) { //v3.0 updated by Robert Lee with " && document.layers" for NS6 compatibility
  if ((obj=MM_findObj(objName))!=null) with (obj)
    if (navigator.appName=='Netscape' && document.layers) {document.write(unescape(newText)); document.close();}
    else innerHTML = unescape(newText);
}

function MM_showHideLayers() { //v3.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
}

/*
// improved version below (with slightly different function name)
function SDIG_toggleDisplay(objName) { // changes style's display attribute between 'none' & 'block'
	var obj = MM_findObj(objName);
	//alert(obj.style.display);
	if(obj.style.display == 'none') obj.style.display = 'block';
	else obj.style.display = 'none';
}
*/

function SDIGtoggleDisplay(objName) { // changes style's display attribute between 'none' & 'block'
	if(obj = MM_findObj(objName)){

		//alert('display:'+obj.style.display);
		//alert('offsetWidth:'+obj.offsetWidth);
		//alert('offsetHeight:'+obj.offsetHeight);

		// if the style.display value is blank we try to figure it out here first
		if(obj.style.display==''&&obj.offsetWidth!=undefined&&obj.offsetHeight!=undefined){
			if(obj.offsetWidth!=0&&obj.offsetHeight!=0) obj.style.display = 'block';
			else obj.style.display = 'none';
		}

		// then we switch the display value
		if(obj.style.display==''||obj.style.display=='block') obj.style.display = 'none';
		else obj.style.display = 'block';

	}
}

function SDIGchangeSelectOptions(formName, selectName, selector){
	s=document.forms[formName][selectName];
	s.length=selectItems[selector].length;
	for(i=0;i<s.length;i++){
 		s.options[i]=new Option(selectItems[selector][i][1],selectItems[selector][i][0]);
	}
	if((s.length==1) && (s.options[0].value=='') ) document.forms[formName][selectName].disabled=true;
	else document.forms[formName][selectName].disabled=false;
}

function SDIGchangeProp(obj,theProp,theValue) {
  if (obj && (theProp.indexOf("style.")==-1 || obj.style)) eval("obj."+theProp+"='"+theValue+"'");
}

function SDIGcheckAllCheckboxes(idString) {
	var inputs = document.getElementsByTagName("input");
	var c = idString.length;
	for(index = 0; index < inputs.length; index++){
		if(inputs[index].id.substring(0,c) == idString){
			inputs[index].checked = 1;
		}
	}
}

function SDIGclearAllTextInputs(formId) {
	var form, elements, i, elm;
	form = document.getElementById ? document.getElementById(formId) : document.forms[formId]; 
	if(document.getElementsByTagName){
		elements = form.getElementsByTagName('input');
		for(i=0, elm; elm=elements.item(i++);){
			if(elm.getAttribute('type') == "text"){
				elm.value = '';
			}
		}
	}else{
		elements = form.elements;
		for(i=0, elm; elm=elements[i++];){
			if(elm.type == "text"){
				elm.value ='';
			}
		}
	}
}

function SDIGclearSearchStringInput(obj, defaultString) {
	if(obj.value==defaultString) obj.value='';
}

function SDIGclickOnce(obj, string){
	// use this on form buttons (input, not submits) or anchors styled as buttons
	if(typeof string=="undefined") string = 'Please wait...';
	if(obj.tagName=="A"){
		obj.innerHTML=string;
		return true;
	}else if(obj.tagName=="INPUT"){
		obj.disabled=true;
		obj.value=string;
		return true;
	}
}

function SDIGdeselectAllMultiSelect(idString) {
	var target = document.getElementById(idString);
	for(i = 0; i < target.length; i++){
		target.options[i].selected = false;
	}
}

function SDIGdigiClock(){
	var plush;
	var plusm;
	var pluss;
	var digiClock;
	now=new Date();
	if(now.getHours()<10){plush="0"}else plush='';
	if(now.getMinutes()<10){plusm="0"}else plusm='';
	if(now.getSeconds()<10){pluss="0"}else pluss='';
	digiClock=plush + now.getHours() + ':' + plusm + now.getMinutes() + ':' + pluss + now.getSeconds();
	document.getElementById('digiClock').innerHTML=digiClock;
	setTimeout("SDIGdigiClock()",1000)
}

function SDIGtoggleCheckboxes(idString) {
	var inputs = document.getElementsByTagName("input");
	var c = idString.length;
	for(index = 0; index < inputs.length; index++){
		if(inputs[index].id.substring(0,c) == idString){
			if(inputs[index].checked == 0) inputs[index].checked = 1;
			else if(inputs[index].checked == 1) inputs[index].checked = 0;
		}
	}
}

function SDIGtoggleMultiSelect(idString) {
	var target = document.getElementById(idString);
	for(i = 0; i < target.length; i++){
		if(target.options[i].selected == true) target.options[i].selected = false;
		else target.options[i].selected = true;
	}
}

function SDIGuncheckAllCheckboxes(idString) {
	var inputs = document.getElementsByTagName("input");
	var c = idString.length;
	for(index = 0; index < inputs.length; index++){
		if(inputs[index].id.substring(0,c) == idString){
			inputs[index].checked = 0;
		}
	}
}


function SDIGselectAllMultiSelect(idString) {
	var target = document.getElementById(idString);
	for(i = 0; i < target.length; i++){
		target.options[i].selected = true;
	}
}

function SDIGsubmitConfirm(text){
	var agree=confirm(text);
	if(agree) return true;
	else return false;
}

function SDIGsubmitOnce(theForm, string){
	//if IE 4+ or NS 6+
	if(document.all||document.getElementById){
		if(typeof string=="undefined") string = 'Please wait...';
		for(i=0;i<theForm.length;i++){
			var tempObj=theForm.elements[i];
			if(tempObj.type.toLowerCase()=="submit"||tempObj.type.toLowerCase()=="reset"||tempObj.type.toLowerCase()=="button"){
				tempObj.disabled=true;
				tempObj.value=string;
			}
		}
	}
}


function SDIGswapImage(id, newImgSrc, newImgW, newImgH) {

	obj=MM_findObj(id);
	if(typeof newImgW!="undefined") obj.style.width=newImgW+'px';
	if(typeof newImgH!="undefined") obj.style.height=newImgH+'px';
	obj.src = newImgSrc;
	
}



function SDIGswapFrameDetailImage(theTriggerThumb, view, colour) {

	// function requires var imageDataArray to be defined prior to calling it
	// var selectedView should also be defined prior to calling, and this function updates it
	// argument 'theTriggerThumb' is object reference to the thumb that triggered this function
	// argument 'view' is integer for which image to show (1=main, 2=front, 3=detail)
	// argument 'colour' is integer denoting array key in imageDataArray which contains required data
	// id of main image is shopItemMainImg
	// ids of thumb images are shopItemThumbImg1, shopItemThumbImg2, shopItemThumbImg3


	// swap main image src & reset width/height
	var newImgW=imageDataArray[colour][2][view][1];
	//alert(newImgW);
	var newImgH=imageDataArray[colour][2][view][2];
	obj=MM_findObj('shopItemMainImg');
	obj.style.width=newImgW+'px';
	obj.style.height=newImgH+'px';
	obj.src = imageDataArray[colour][2][view][0];


	// reset class of all thumbs
	obj=MM_findObj('shopItemThumbImg1');
	SDIGchangeProp(obj,'className','thumb');
	obj=MM_findObj('shopItemThumbImg2');
	SDIGchangeProp(obj,'className','thumb');
	obj=MM_findObj('shopItemThumbImg3');
	SDIGchangeProp(obj,'className','thumb');

	// change trigger thumb's class
	SDIGchangeProp(theTriggerThumb,'className','thumbSelected');


	// update selectedView var
	selectedView=view;

}



function SDIGswapFrameDetailImageColour(colour, selectedView) {

	// function requires var imageDataArray to be defined prior to calling it
	// var selectedColour should also be defined prior to calling, and this function updates it
	// argument 'colour' is integer denoting array key in imageDataArray which contains required data
	// argument 'selectedView' is integer for which image to show for main image (1=main, 2=front, 3=detail)
	// id of main image is shopItemMainImg
	// ids of thumb images are shopItemThumbImg1, shopItemThumbImg2, shopItemThumbImg3


	// swap main image src & reset width/height
	if(obj=MM_findObj('shopItemMainImg')){
		var newImgW=imageDataArray[colour][2][selectedView][1];
		var newImgH=imageDataArray[colour][2][selectedView][2];
		obj.style.width=newImgW+'px';
		obj.style.height=newImgH+'px';
		obj.src = imageDataArray[colour][2][selectedView][0];
	}


	// swap thumb1 image src & reset width/height
	if(obj=MM_findObj('shopItemThumbImg1')){
		var newImgW=imageDataArray[colour][3][1][1];
		var newImgH=imageDataArray[colour][3][1][2];
		obj.style.width=newImgW+'px';
		obj.style.height=newImgH+'px';
		obj.src = imageDataArray[colour][3][1][0];
	}


	// swap thumb2 image src & reset width/height
	if(obj=MM_findObj('shopItemThumbImg2')){
		var newImgW=imageDataArray[colour][3][2][1];
		var newImgH=imageDataArray[colour][3][2][2];
		obj.style.width=newImgW+'px';
		obj.style.height=newImgH+'px';
		obj.src = imageDataArray[colour][3][2][0];
	}


	// swap thumb3 image src & reset width/height
	if(obj=MM_findObj('shopItemThumbImg3')){
		var newImgW=imageDataArray[colour][3][3][1];
		var newImgH=imageDataArray[colour][3][3][2];
		obj.style.width=newImgW+'px';
		obj.style.height=newImgH+'px';
		obj.src = imageDataArray[colour][3][3][0];
	}


	// update selectedColour var
	selectedColour=colour;

}






















/*
Form field Limiter script- By Dynamic Drive
For full source code and more DHTML scripts, visit http://www.dynamicdrive.com
This credit MUST stay intact for use
*/

var ns6=document.getElementById&&!document.all

function restrictinput(maxlength,e,placeholder){
if (window.event&&event.srcElement.value.length>=maxlength)
return false
else if (e.target&&e.target==eval(placeholder)&&e.target.value.length>=maxlength){
var pressedkey=/[a-zA-Z0-9\.\,\/]/ //detect alphanumeric keys
if (pressedkey.test(String.fromCharCode(e.which)))
e.stopPropagation()
}
}

function countlimit(maxlength,e,placeholder){
var theform=eval(placeholder)
var lengthleft=maxlength-theform.value.length
var placeholderobj=document.all? document.all[placeholder] : document.getElementById(placeholder)
if (window.event||e.target&&e.target==eval(placeholder)){
if (lengthleft<0)
theform.value=theform.value.substring(0,maxlength)
placeholderobj.innerHTML=lengthleft
}
}


function displaylimit(theform,thelimit){
var limit_text='<br/><b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characters remaining (edit text to update this value)'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
}
}


function displaylimit2(theform,thelimit){
var limit_text='<b><span id="'+theform.toString()+'">'+thelimit+'</span></b> characters remaining (edit text to update this value)'
if (document.all||ns6)
document.write(limit_text)
if (document.all){
eval(theform).onkeypress=function(){ return restrictinput(thelimit,event,theform)}
eval(theform).onkeyup=function(){ countlimit(thelimit,event,theform)}
}
else if (ns6){
document.body.addEventListener('keypress', function(event) { restrictinput(thelimit,event,theform) }, true); 
document.body.addEventListener('keyup', function(event) { countlimit(thelimit,event,theform) }, true); 
}
}

// End form field Limiter script- By Dynamic Drive






/***********************************************
* Fixed ToolTip script- © Dynamic Drive (www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for full source code
* Modified by Robert Lee:
*   Hides <select>s under tooltip while it's displayed in IE6 & older
*   x & y offsets passed in main function call
*   default tooltipwidth & bg color moved to CSS
*   getposOffset() function modified to ignore offset of <body> tag to fix IE bug
***********************************************/
		
//var tipwidth='200px' //default tooltip width
//var tipbgcolor='#EEEEEE'  //tooltip bgcolor
var disappeardelay=0  //tooltip disappear speed onMouseout (in miliseconds)
var vertical_offset="10px" //horizontal offset of tooltip from anchor link
var horizontal_offset="0px" //horizontal offset of tooltip from anchor link

/////No further editing needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
	document.write('<div id="fixedTipDiv" style="visibility:hidden;" ></div>')
//document.write('<div id="fixedTipDiv" style="visibility:hidden;width:'+tipwidth+';background-color:'+tipbgcolor+'" ></div>')

function getposOffset(what, offsettype){
	var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	//while (parentEl!=null){
	// next line ignores offset of <body> tag
	// if <body> is relatively positioned and is not at viewport origin (e.g. centered), IE will incorrectly judge this to be some offset and the fixedTipDiv is wrongly positioned
	while (parentEl!=null && parentEl.tagName!='BODY'){
		//alert(parentEl.tagName);
		totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}


function showhide(obj, e, visible, hidden, tipwidth){
	if (ie4||ns6)
		dropmenuobj.style.left=dropmenuobj.style.top=-500
	if (tipwidth!=""){
		dropmenuobj.widthobj=dropmenuobj.style
		dropmenuobj.widthobj.width=tipwidth
	}
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover")
		obj.visibility=visible
	else if (e.type=="click")
		obj.visibility=hidden
}

function iecompattest(){
	return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
	var edgeoffset=(whichedge=="rightedge")? parseInt(horizontal_offset)*-1 : parseInt(vertical_offset)*-1
	if (whichedge=="rightedge"){
		var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
	}else{
		var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure)
			edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight
	}
	return edgeoffset
}

function fixedtooltip(menucontents, obj, e, tipwidth, offsetx, offsety){
	if (typeof offsetx!="undefined") horizontal_offset = offsetx;
	if (typeof offsety!="undefined") vertical_offset = offsety;
	if (window.event) event.cancelBubble=true
	else if(e.stopPropagation) e.stopPropagation()
	clearhidetip()
	dropmenuobj=document.getElementById? document.getElementById("fixedTipDiv") : fixedTipDiv
	dropmenuobj.innerHTML=menucontents

	if (ie4||ns6){
		showhide(dropmenuobj.style, e, "visible", "hidden", tipwidth)
		dropmenuobj.x=getposOffset(obj, "left")
		dropmenuobj.y=getposOffset(obj, "top")
		dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
		dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
		/*
		New lines below added by Robert Lee
		Hides <select>s under tooltip while it's displayed
		*/
		var positions=getElementPosition("fixedTipDiv");
		toggleSelect(positions[0], positions[1], positions[2], positions[3]);
		/*
		end new lines
		*/
	}
}

function hidetip(e){
	if (typeof dropmenuobj!="undefined"){
		if (ie4||ns6)
			dropmenuobj.style.visibility="hidden"
		/*
		New lines below added by Robert Lee
		Hides <select>s under tooltip while it's displayed
		*/
		var positions=getElementPosition("fixedTipDiv");
		toggleSelect(positions[0], positions[1], positions[2], positions[3]);
		/*
		end new lines
		*/
	}
}

function delayhidetip(){
	if (ie4||ns6)
		delayhide=setTimeout("hidetip()",disappeardelay)
}

function clearhidetip(){
	if (typeof delayhide!="undefined")
		clearTimeout(delayhide)
}

// End Fixed Tooltip - By Dynamic Drive


function toggleSelect(x,y,w,h){ 
	// works only in IE6 and older - if IE7 displays form controls over DHTML objects then modify below 
	var appVer = navigator.appVersion.toLowerCase(); 
	var iePos = appVer.indexOf('msie'); 
	if (iePos !=-1) { 
		var is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos))); 
		var is_major = parseInt(is_minor); 
	} 
	if (navigator.appName.substring(0,9) == "Microsoft"){ // Check if IE version is 6 or older 
		if (is_major <= 6){ 
			var selx,sely,selw,selh,i 
			var sel=document.getElementsByTagName("SELECT") 
			for(i=0;i<sel.length;i++){ 
				selx=0; sely=0; var selp; 
				if(sel[i].offsetParent){ 
					selp=sel[i]; 
					while(selp.offsetParent){ 
						selp=selp.offsetParent; 
						selx+=selp.offsetLeft; 
						sely+=selp.offsetTop; 
					} 
				} 
				selx+=sel[i].offsetLeft; 
				sely+=sel[i].offsetTop; 
				selw=sel[i].offsetWidth; 
				selh=sel[i].offsetHeight; 
				if(selx+selw>x && selx<x+w && sely+selh>y && sely<y+h){
					if(sel[i].style.visibility!="hidden") sel[i].style.visibility="hidden"; 
					else sel[i].style.visibility="visible"; 
				}
			} 
		} 
	} 
}



function getElementPosition(id){
	var tooltipx,tooltipy,tooltipw,tooltiph,tooltipp; 
	var tooltip=document.getElementById(id) 
	tooltipx=0; tooltipy=0;
	if(tooltip.offsetParent){ 
		tooltipp=tooltip; 
		while(tooltipp.offsetParent){ 
			tooltipp=tooltipp.offsetParent; 
			tooltipx+=tooltipp.offsetLeft; 
			tooltipy+=tooltipp.offsetTop;
		}
	}
	tooltipx+=tooltip.offsetLeft; 
	tooltipy+=tooltip.offsetTop; 
	tooltipw=tooltip.offsetWidth; 
	tooltiph=tooltip.offsetHeight; 
	//alert('tooltipx=' + tooltipx + 'tooltipy=' + tooltipy + 'tooltipw=' + tooltipw + 'tooltiph=' + tooltiph);
	var output = [ tooltipx, tooltipy, tooltipw, tooltiph ];
	return output;
}
